fork(2) download
  1. <script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
  2.  
  3. <?php
  4.  
  5. // Busca no BD
  6. // Algo como: query[] = array('Cat 1'=>array());
  7. $query = array(
  8.  
  9. 'Categoria 1' => array('Página 1 Categoria 1', 'Página 2 Categoria 1'),
  10.  
  11. 'Categoria 2' => array('Página 1 Categoria 2', 'Página 2 Categoria 2')
  12. );
  13.  
  14. echo sprintf("<script>var data = %s;</script>", json_encode($query) );
  15.  
  16. ?>
  17.  
  18. <div id="inputs">
  19. <?php
  20.  
  21. foreach( $query as $key=>$value)
  22. {
  23.  
  24. echo "<input type=\"radio\" name=\"categoria\" value=\"{$key}\"> {$key}";
  25. }
  26.  
  27. ?>
  28. </div>
  29.  
  30. <select id="select"></select>
  31.  
  32. <script>
  33. $(function(){
  34.  
  35. 'use stric';
  36.  
  37. (update = function(index)
  38. {
  39. var first = $('input[name="categoria"]:eq(0)').val();
  40.  
  41. $('#select option').remove();
  42.  
  43. $('input[name="categoria"]').eq(index||0).attr('checked','checked');
  44.  
  45. var array = data[ index||first ];
  46.  
  47. for( i in array)
  48. {
  49.  
  50. $('#select').
  51. append('<option value="'+ array[i] +'">'+ array[i] +'</option>');
  52. }
  53.  
  54. })();
  55.  
  56. $('input[name="categoria"]').change(function()
  57. {
  58.  
  59. update( $(this).val() );
  60.  
  61. });
  62.  
  63. });
  64. </script>
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>

<script>var data = {"Categoria 1":["P\u00e1gina 1 Categoria 1","P\u00e1gina 2 Categoria 1"],"Categoria 2":["P\u00e1gina 1 Categoria 2","P\u00e1gina 2 Categoria 2"]};</script>
<div id="inputs">
<input type="radio" name="categoria" value="Categoria 1"> Categoria 1<input type="radio" name="categoria" value="Categoria 2"> Categoria 2</div>

<select id="select"></select>

<script>
$(function(){

	'use stric';

	(update = function(index)
	{
		var first = $('input[name="categoria"]:eq(0)').val();

		$('#select option').remove();

		$('input[name="categoria"]').eq(index||0).attr('checked','checked');

		var array = data[ index||first ];

		for( i in array)
		{

			$('#select').
			append('<option value="'+ array[i] +'">'+ array[i] +'</option>');
		}

	})();

	$('input[name="categoria"]').change(function()
	{

		update( $(this).val() );

	});

});
</script>