php - Auto-populating select boxes using jQuery and Ajax - not working in anything newer than 1.3.2 -


i have been going through tutorial on auto-populating boxes using jquery , ajax: http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/

and in demo author running jquery version 1.2.3. locally managed function running on jquery 1.3.2. running on version above 1 not working (the second box not populating).

here jquery code:

<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" charset="utf-8"> $(function(){   $("select#ctljob").change(function(){     $.getjson("/select.php",{id: $(this).val(), ajax: 'true'}, function(j){       var options = '';       (var = 0; < j.length; i++) {         options += '<option value="' + j[i].optionvalue + '">' + j[i].optiondisplay + '</option>';       }       $("select#ctlperson").html(options);     })   }) }) </script> 

this html code:

<form action="/select_demo.php">   <label for="ctljob">job function:</label>   <select name="id" id="ctljob">     <option value="1">managers</option>     <option value="2">team leaders</option>     <option value="3">developers</option>   </select>   <noscript>     <input type="submit" name="action" value="load individuals" />   </noscript>   <label for="ctlperson">individual:</label>   <select name="person_id" id="ctlperson">     <option value="1">mark p</option>     <option value="2">andy y</option>     <option value="3">richard b</option>   </select> <input type="submit" name="action" value="book" /> </form> 

this server-side php:

<?php if ($_get['id'] == 1) {   echo <<<here_doc [ {optionvalue: 0, optiondisplay: 'mark'}, {optionvalue:1, optiondisplay: 'andy'}, {optionvalue:2, optiondisplay: 'richard'}] here_doc; } else if ($_get['id'] == 2) {   echo <<<here_doc [{optionvalue:10, optiondisplay: 'remy'}, {optionvalue:11, optiondisplay: 'arif'}, {optionvalue:12, optiondisplay: 'jc'}] here_doc; } else if ($_get['id'] == 3) {   echo <<<here_doc [{optionvalue:20, optiondisplay: 'aidan'}, {optionvalue:21, optiondisplay:'russell'}] here_doc; }?> 

how rewrite function works with, example, jquery 1.5?

thanks help!

edit: mark's solution worked, html file in it, , should relatively easy adapt read saved json file.

<html>     <head>         <meta http-equiv="content-type" content="text/html; charset=utf-8" />         <title>select test</title>         <script type="text/javascript" src="jquery.js"></script>         <script type="text/javascript">                  $(function(){                     var data = [                                 [                                     {optionvalue: 0,optiondisplay: 'mark'},                                     {optionvalue: 1,optiondisplay: 'andy'},                                     {optionvalue: 2,optiondisplay: 'richard'}                                     ],                                 [                                     {optionvalue: 10,optiondisplay: 'remy'},                                     {optionvalue: 11,optiondisplay: 'arif'},                                     {optionvalue: 12, optiondisplay: 'jc'}                                ],                                 [                                     {optionvalue: 20,optiondisplay: 'aidan'},                                     {optionvalue: 21,optiondisplay: 'russell'}                                    ]                                ];                       $("#ctljob").change(function() {                         var $persons = $("#ctlperson").empty();                         $.each(data[$(this).val() - 1], function() {                             $persons.append("<option value=" + this.optionvalue + ">" + this.optiondisplay + "</option>");                         });                     });                 })                     </script>     </head>      <body>             <form action="/select_demo.php">                 <label for="ctljob">job function:</label>                 <select name="id" id="ctljob">                     <option value="1">managers</option>                     <option value="2">team leaders</option>                     <option value="3">developers</option>                 </select>                 <noscript>                     <input type="submit" name="action" value="load individuals" />                 </noscript>                 <label for="ctlperson">individual:</label>                 <select name="person_id" id="ctlperson">                     <option value="1">mark p</option>                     <option value="2">andy y</option>                     <option value="3">richard b</option>                 </select>                 <input type="submit" name="action" value="book" />             </form>     </body> </html> 

assuming json valid should able use following:

 $("select#ctljob").change(function(){     $.getjson("/select.php",{id: $(this).val(), ajax: 'true'}, function(data){       var $persons = $("#ctlperson").empty();       $.each(data, function() {         $persons.append("<option value=" + this.optionvalue + ">" + this.optiondisplay + "</option>");       });     })   }); 

updated use markup in question on jsfiddle.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -