2010-07-27 21 views
0

J'ai donc beaucoup de boutons radio avec le même nom mais un ID différent et je ne veux pas que l'un d'entre eux soit sélectionné au chargement de la page. L'ID du bouton souhaité est enregistré dans la base de données. J'ai essayé ce genre de solution pour l'appel ajax réel, mais hélas cela n'a pas fonctionné. tandis que la partie HTMLjQuery: chargement de la balise ID de la base de données

$.ajax({ 
     type: "POST", 
     url: "load_config.php", 
     dataType: "json", 
     data: dataString, 
     success: function(data) 
     { 
      var buttonID = "#"+data.buttonID; // data.buttonID = "button5" 
      $(buttonID).attr("checked", true); 
     } 
}); 

est de cette manière sorta, sauf avec beaucoup plus de boutons:

<input type="radio" id="button1" name="example" value="value1"/> 
<input type="radio" id="button2" name="example" value="value2"/> 
<input type="radio" id="button3" name="example" value="value3"/> 
<input type="radio" id="button4" name="example" value="value4"/> 
<input type="radio" id="button5" name="example" value="value5"/> 
+0

Quel message d'erreur, le cas échéant, obtenez-vous? – Sarfraz

+1

Essayez ce jsFiddle: http://jsfiddle.net/CfWsc/. Cela fonctionne pour moi en FF3.6. Est-ce que votre appel AJAX réussit? Vos données sont-elles correctes? – MvanGeest

+1

Cela semble correct, vérifiez bien si 'data.buttonID' est' button5' ou si vous avez un autre 'ID' appelé' button5' dans votre code html. – KakambaWeb

Répondre

1

Vérifiez que votre JSON revenir, votre approche globale est correcte, vous pouvez le tester ici: http://jsfiddle.net/nick_craver/KuK3Z/

Je parie que votre data.buttonID n'est pas tout à fait ce que vous pensez qu'il est, ou votre code ne fonctionne pas dans un document.ready, comme ceci:

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "load_config.php", 
     dataType: "json", 
     data: dataString, 
     success: function(data) 
     { 
      var buttonID = "#"+data.buttonID; // data.buttonID = "button5" 
      $(buttonID).attr("checked", true); 
     } 
    }); 
}); 

Si elle ne tourne pas dans un document.ready et votre appel est terminé AJAX avant que vos éléments sont prêts, le sélecteur $("#button5") ne trouvera rien à vérifier. Alternativement, et bien mieux si vous le pouvez, il suffit de rendre un checked="checked" à l'intérieur du <input /> correct lors du rendu de la page, et d'éliminer complètement l'appel AJAX.

+0

oh crapness. vous avez raison, le data.buttonID est revenu comme non défini. J'étais sûr de l'avoir vérifié plus tôt, mais je l'ai modifié et je l'ai typographié par la suite. un peu embarrassant! mais merci quand même: D – Seerumi

0

Essayez de vérifier votre réponse de données:

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "load_config.php", 
     dataType: "json", 
     data: dataString, 
     success: function(data) 
     { 
      alert(data['buttonID']); 
     } 
    }); 
}); 

si est indéfini vérifier votre php ou ma dernière solution, sinon essayez:

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "load_config.php", 
     dataType: "json", 
     data: dataString, 
     success: function(data) 
     { 
      $("#"+data['buttonID']).attr("checked",true); 
     } 
    }); 
}); 

J'ai un problème une fois que le temps le retour du JSON jquery, la chaîne json a été retournée avec beaucoup de barres obliques ... essayez ceci dans le cas où la première solution vous gage une erreur (cela rapportera la chaîne retournée du serveur de formulaire sans décoder le json):

$(function() { 
    $.ajax({ 
     type: "POST", 
     url: "load_config.php", 
     dataType: "text", 
     data: dataString, 
     success: function(data) 
     { 
      alert(data); 
     } 
    }); 
}); 

Désolé pour mon anglais. dites-moi quelque chose si cela a fonctionné ...

+0

c'était une faute de frappe que j'ai manqué tout à fait, mais merci pour la suggestion quand même. – Seerumi

+0

vous êtes les bienvenus;) – CuSS