2010-05-31 4 views
2

Je dois remplir une case à cocher multi dans un formulaire à partir de données provenant d'un fichier XML d'une fonction de publication avec jquery?jquery remplir multi-checkbox à partir du fichier xml

<input type="checkbox" name="mercato[]" id="mkt_0" value="A">A<input type="checkbox" name="mercato[]" id="mkt_1" value="B">B 

Merci d'avance. ciao h

+0

Pourriez-vous nous indiquer le code Javascript que vous avez rédigé? Merci. – mexique1

+0

De votre commentaire ci-dessous, il semble que vous ne soyez pas sûr de savoir comment cocher une case à l'aide de jQuery. Est-ce exact? – user113716

Répondre

2

Voici un exemple d'obtenir un fichier XML et l'analyse via jQuery:

$.ajax({ 
     type: "POST", 
     url: "some.xml", 
     dataType: "xml", 
     success: function(xml) { 
      var node = $(xml).find('node'); 
      var attribute = $(xml).find('node').attr("attribute"); 
     //TODO: do something with data 
    } 
    }); 

Vous pouvez également utiliser $.each() pour itérer collections d'éléments.

Edit: et voici comment créer des cases à cocher en supposant que le code XML retourné ressemble à ceci:

<?xml version="1.0"?> 
<RootElement> 
    <CheckBox name="checkbox1">checked</CheckBox> 
    <CheckBox name="checkbox1">checked</CheckBox> 
    <CheckBox name="checkbox1"></CheckBox> 
    <CheckBox name="checkbox1"></CheckBox> 
    <CheckBox name="checkbox1">checked</CheckBox> 
</RootElement> 

Les js se présente comme suit:

$(xml).find('CheckBox').each(function(){ 
     var value = $(this).text(); // get the value 
     var name = $(this).attr("name"); //get the name attribute 
     $("#parent_div").append(//append to some parent container 
       $("<input/>") // a new input element 
        .attr("type", "checkbox") //of type checkbox 
        .attr("name", name) // with given name 
        .attr("checked", value) // checked="checked" or checked="" 
     ) 
    }); 
+0

Je sais parse XML pour obtenir des données pour la radio de texte d'entrée et sélectionnez mais pas pour la case à cocher :-( – haltman

+0

Merci de répondre à mcm69 mais je ne peux pas ajouter des données J'ai déjà un formulaire Je dois juste cocher les cases à droite et laisser décoché l'autre merci encore ciao h. – haltman

0

Thaks votre aide je me suis solution!

C'est mon script de travail:

var forma=$("form"); 
       var elements=$("*", forma); 
       $.each(elements,function(i){ 
        var id = $(elements[i]).attr("id"); 
        var tipo = $(elements[i]).attr("type"); 
        var nome=$(elements[i]).attr("name"); 
        var val=$(elements[i]).attr("value"); 
        switch (tipo) 
        { 
         case "text" : 
          $(elements[i]).val($(id, xml).text()); 
         break; 
         case "radio": 
          $("input:radio[name='"+nome+"'][value='"+ $(nome, xml).text() +"']").attr('checked', true); 
         break; 
         case "checkbox": 
          $(xml).find(nome).each(function(){ 
          var value =$(this).text(); 
          if (val==value) 
          { 
            $("#"+id).attr("checked", value);         } 
          }); 

         break; 
         case "select-one" : 
          $(elements[i]).append("<option selected>"+$(nome ,xml).text()+"</option>"); 
         break; 
        } 

        $("#scheda_ris").append(id+" "+tipo+" "+nome+" "+val+"<br>"); //that's just for debug 
       }); 

Si vous avez des suggestions pour le rendre plus élégant, je serai très heureux Merci encore

ciao h.

Questions connexes