Je suis nouveau à JQuery et Ajaxvaleur renvoyée par premier appel Ajax ne figure pas dans le second appel ajax
Je suis en train d'utiliser la valeur retournée par l'appel Ajax à un autre appel Ajax. Exemple:
$.ajax({
type: "POST",
url: "http://localhost/FormBuilder/index.php/forms/saveForm/",
async: false,
data: "formname="+formname+"&status="+status,
success: function(msg){
//alert("Data Saved: " + msg);
getformid=msg;
}//success
});//ajax
$("#fb_contentarea_col1down21 div").each(function() {
alert("Form id "+getformid);//alerts me the Formid returned from the Cakephp controller side
var checked="false";
var id=$(this).attr("id");
var fsize=$("#input"+id+"").width();
var ftype=$("#input"+id+"").attr('data-attr');
var finstr=$("#instr"+id+"").text();
var fname=$("#label"+id+"").clone().html().replace(/<span.*/,'');
if($("#label"+id+"> span.req").length > 0)
{
checked="true";
}
$.ajax({
type: "POST",
async: false,
url: "http://localhost/FormBuilder/index.php/forms/saveField",
data: "sequence_no="+id+"&name="+fname+"&type="+ftype+"&size="+fsize+"&instr="+finstr+"&formid="+getformid+"&required="+checked,
success: function(msg){
//alert("Data Saved: " + msg);
}//success
});//ajax
});//DIV
Le premier appel Ajax retourne le formulaire ID et avertit même correctement dans la div, mais ne se reflète pas la valeur retournée dans getformid dans le second appel ajax. S'il vous plaît dites-moi ce qui ne va pas.
Modifier: Résolu l'erreur. La cause n'est pas dans mes appels Ajax du tout dans mon contrôleur Cakephp où je renvoie seulement mon ID de formulaire et pas l'instance de formulaire. J'ai changé et j'ai eu la réponse. Merci à tous ceux qui ont aidé.
Pourriez-vous me donner un échantillon – useranon
Quelque chose comme mettre le code de la deuxième requête à l'intérieur de la fonction hookée sur l'événement "success" du premier ferait, je pense - mais cela n'est vrai que si vous travaillez avec Demande asynchrone (vous devriez!); voir mon édition, à propos de ce point (j'ai seulement vu après avoir répondu que vous utilisiez des requêtes synchrones, désolé) –
je veux faire une requête asynchrone seulement, car je ne suis pas au courant de Ajax je l'ai essayé avec l'async: false..S'il vous plaît comment appeler le deuxième ajax sur le succès du premier appel Ajax – useranon