Parsing XML into multiple form fields using Jquery -


what want do: i) parse xml data select option field ii) when user makes selection using option box, many more form fields populated relevant xml data based on user selection.

i have working adobe spry (what hear cry!!!) - currently, user selects option box contains data xml , example "american wigeon" when selected populates other form fields rest of xml, such "turdus migratorius" , on. if user changes mind , selects another, example "american robin", relevant xml bird populate form fields.

i have found answers on here getting parsed data select option, cannot work out next bit of using multiple fields.

my xml file looks (edited down 2 entries, approx 300 normally):

<?xml version="1.0" encoding="utf-8" ?> <bird>  <result> <name>american wigeon</name> <latin>anas americana</latin> <rare>1</rare> <id>68</id> <breed>0</breed> <winter>0</winter> </result>  <result> <name>american robin</name> <latin>turdus migratorius</latin> <rare>1</rare> <id>255</id> <breed>0</breed> <winter>0</winter>  </bird> 

i work in jquery can start add more functionality script.

any appreciated.

many thanks

mark

edit date:

i script written charlietfi , have tested on jsfiddle (many thanks) - having problems appending additional xml data form fields. example, if select american wigeon, want put additional xml data form fields, can submitted (so value of "rare" go text field")

i can sample text form field cannot selected additonal xml data in - code example below:

var xml = '<?xml version="1.0" encoding="utf-8" ?><bird><result><name>american  wigeon</name><latin>anas americana</latin><rare>1</rare><id>68</id><breed>0</breed> <winter>0</winter></result><result><name>american robin</name><latin>turdus  migratorius</latin><rare>1</rare><id>255</id><breed>0</breed><winter>0</winter> </result></bird>';  var $xml = $($.parsexml(xml));  $xml.find('result').each(function() { var data={} $(this).children().each(function() {     data[this.tagname]=$(this).text(); })                                                                                               $('#test').data( data.id,  data).append('<option                                                                           value="'+data.id+'">'+data.name+'</option>');   });    $('#test').change(function(){ var data=$(this).data( $(this).val());     var input = $( "#test2" ); // **this being name of text field**  input.val( input.val() + "more text" );        alert('id:'+data.id +', name:'+ data.name);       }) 

when script runs, select bird option, brings alert box expected plus inserted text field "more text" (used make sure gets added).

i stuck on how use" +data.id + " , #test2 many every ones , apologies if such simple thing missing.

following dynamically parse xml, creating both option , data object stored on select element using jquery data()

var $xml = $($.parsexml(xml));  $xml.find('result').each(function() {     var data={};     /* loop on children of each "result create data object*/     $(this).children().each(function() {         data[this.tagname]=$(this).text();     });     /* add data select , create option*/     $('#test').data( data.id , data).append('<option value="'+data.id+'">'+data.name+'</option>'); });  /* change handler select*/ $('#test').change(function(){     var data=$(this).data( $(this).val());      /* here make updates other fields */         alert('id:'+data.id +', name:'+ data.name);     }) 

demo: http://jsfiddle.net/dpk7x/1/


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -