2017-10-06 5 views
0

J'écris un code dans lequel l'utilisateur vérifie plusieurs cases à cocher et celles que les utilisateurs affectent à la division sélectionnée. J'utilise la fonction $ .post dans une boucle de cases à cocher. Tout fonctionne correctement et les utilisateurs cochés sont affectés à la division sélectionnée. Maintenant, le problème est que je veux imprimer une réponse après la fonction $ .post mais tout ce que j'écris après cette fonction post, javascript l'exécute avant cette fonction et c'est pourquoi, je suis incapable d'imprimer la réponse. Veuillez vérifier le code ci-dessous pour votre commodité et suggérer une solution possible.

Merci beaucoup

function assign_user(div_id){ 
    //alert(div_id); 
    var favorite = []; 
    $.each($("input[name='user']:checked"), function(){ 
     value = $(this).val(); 
     $.post("../db/assign_user.php",{div_id:div_id,value:value}, 
     function(x){ 

     }); 
// I want to print final response here but it executes before post function 
    }); 
} 
+0

imprimer quelle est la réponse? –

+0

Comme un message de succès d'alerte –

+0

vous devrez attendre jusqu'à ce que le message de succès existe. vous n'avez pas fourni de code qui tente même d'imprimer le message, alors ... nous n'avons aucune idée de ce que vous faites réellement de mal, tout ce que nous pouvons faire est de deviner. –

Répondre

-1

Ajax requêtes sont asynchrones. Ils sont envoyés au serveur, puis le javascript continue sans attendre de réponse. Si vous tapez votre demande Ajax comme:

$.ajax({ 
    url: "../db/assign_user.php", 
    type: 'POST', 
    data: {div_id:div_id,value:value}, 
    success: function(data){ 
    alert(data); 
    } 
}); 

puis dans la fonction success, vous pouvez gérer ou alerter la réponse.