2012-03-28 3 views
2

J'ai une fonction qui fait un simple appel à un fichier PHP avec une simple instruction INSERT. Lorsque je clique sur le bouton correspondant, la fonction n'envoie même pas la requête AJAX ou retourne false.Quel est le problème avec ma fonction AJAX jQuery?

$(function() { 
    $('#add_employee_submit').click(function() { 
     var fname = $('#eie_fname').text(); 
     var lname = $('#eie_lname').text(); 
     var doNo = $('#eie_doNo').val(); 
     var emergency = 0; 
     if($('#eie_emergency').is(':checked')) { 
      emergency = 1; 
     } 
     $.ajax({ 
      type: "POST", 
      url: "scripts/employee_information_entry.php", 
      data: "fname="+fname+"&lname="+lname+"&dono="+doNo+"&emergency="+emergency, 
      success: function() { 
       showMessage('employee_added'); 
      } 
     }); 
     return false; 
    }); 
}); 

Est-ce que je manque quelque chose d'évident ici?

EDIT:

Au lieu de perdre plus de temps à essayer de comprendre ce qui se passait, je suis allé avec des conseils et jquery.malsup.com/form utilisés de @ ThiefMaster. Cela fonctionne correctement et laisse beaucoup de travail.

Merci pour l'aide de tout le monde. :)

+2

Question stupide: avez-vous un élément avec l'identifiant 'add_employee_submit'? Quoi qu'il en soit, essayez d'utiliser l'événement submit() à la place –

+4

Le fait que 'data' soit une chaîne et non un objet n'est pas vraiment une bonne chose. De cette façon, vous devez prendre soin de vous échapper - ce qui n'est généralement pas ce que vous voulez. Utilisez donc un objet à la place: 'data: {nom: nom, nom: nom, nom: nom, numéro d'urgence, urgence: urgence}' – ThiefMaster

+1

Envisagez d'utiliser http://jquery.malsup.com/form/ - vous économisez beaucoup de travail si vous avez une forme réelle que vous voulez ajaxifier. – ThiefMaster

Répondre

1

La fonction de succès devrait avoir un paramètre de réponse à savoir votre code serait comme:

$.ajax({ 
    type: "POST", 
    url: "scripts/employee_information_entry.php", 
    data: "fname="+fname+"&lname="+lname+"&dono="+doNo+"&emergency="+emergency, 
    success: function(response) { 
     showMessage('employee_added'); 
    } 
    }); 

Vérifiez également si les différents ids sont présents ou non.

La meilleure méthode à vérifier est d'utiliser la console firebug/developer pour vérifier quels paramètres sont envoyés et ceux qui sont reçus.

Questions connexes