2011-10-05 4 views
0

La demande d'ajout de ligne qui doit être effectuée par datatables ne semble pas envoyer de demande à la page .php. quand je clique sur Confirmer sur le formulaire AddNewRow, il ajoute seulement une ligne au datatable sur la page web, et ne m'avertit pas de la sortie de la page php 'AddData.php' comme Delete and Edit, le seul code est un echo 'test', pour voir si ça marche. J'ai utilisé le Editable plugin for Datatables.Datatables Plugin Ajouter une ligne PHP

La forme requise dans le code HTML pour que le plugin makeEditable AddNewRow fonctionne, fonctionne correctement, le formulaire s'affiche avec les boutons et champs corrects.

Comment puis-je tester si j'envoie la requête AJAX?, Quelles fonctions ou propriétés puis-je utiliser pour vérifier les données envoyées et modifier les données à envoyer?

Voici le code pour créer mes datatables:

$('#tmTabs').tabs({ 
    "show": function(event, ui) { 
     //make datatable columns resize to adjust to changing tabs 

    } 
}); 

$('.dataTable').each(function(){ 
    //get ID of current table; 
    tblID = $(this).attr("id"); 
    var pattern = "[0-9]+"; 
    $tblIDNum = tblID.match(pattern); 

    //transform this table into a data table 
    $(this).dataTable({ 
     "bProcessing":true, 
     "sScrollY": "600px", 
     "sScrollX": "100%", 
     "bScrollCollapse": true, 
     "bPaginate": false, 
     "bJQueryUI": true 

     }) 

    .makeEditable({ 
      //ajax requests for server-side processing 

      sUpdateURL: "UpdateData.php", 



      sAddURL: 'AddData.php', 
      sDeleteURL: "DeleteData.php", 
      sReadOnlyCellClass: "read_only", 

      //Button Customization 
      oAddNewRowButtonOptions: { 
      label: "Add...", 
          icons: { primary: 'ui-icon-plus' } 
         }, 
         oDeleteRowButtonOptions: { 
      label: "Remove", 
          icons: { primary: 'ui-icon-trash' } 
         }, 
         oAddNewRowOkButtonOptions: { 
      label: "Confirm", 
          icons: { primary: 'ui-icon-check' }, 
          name: "action", 
          value: "add-new" 
         }, 
         oAddNewRowCancelButtonOptions: { 
      label: "Close", 
          class: "back-class", 
          name: "action", 
          value: "cancel-add", 
          icons: { primary: 'ui-icon-close' } 
         }, 
      oAddNewRowFormOptions: { 
       title: 'Add New Row', 
       show: "blind", 
       hide: "explode" 
       }, 

      //Link button ids 
      sAddDeleteToolbarSelector: ".dataTables_length", 
      sAddNewRowFormId: "formAddNewRow"+$tblIDNum, 
      sAddNewRowButtonId: "btnAddNewRow"+$tblIDNum, 
      sAddNewRowOkButtonId: "btnAddNewRowOk"+$tblIDNum, 
      sAddNewRowCancelButtonId: "btnAddNewRowCancel"+$tblIDNum, 
      sDeleteRowButtonId: "btnDeleteRow"+$tblIDNum         
      }); 
enter code here 

}); 

Répondre

0

Utilisation du panneau net Firebug pour voir l'appel est terminé Ajax.

Si la ligne est ajoutée sans aucun avertissement à la table, il semble que votre page php est appelée et qu'elle a renvoyé quelque chose qui est accepté par le plugin comme un ID valide de la nouvelle ligne.

Notez que si votre page renvoie une réponse, cette réponse sera considérée comme un identifiant de la nouvelle ligne. Si vous pouvez trouver l'attribut id de la nouvelle ligne, vous verrez qu'il a une valeur renvoyée par le serveur.

Par votre description je crois que votre page de serveur est appelée, que l'insertion du côté du serveur a échoué mais le plugin pense que tout va bien, et la rangée est ajoutée. La seule façon de renvoyer le code d'erreur du serveur consiste à forcer l'erreur Ajax en définissant le code d'état de la réponse sur un code d'erreur, par exemple. 404 et le plugin affichera alors le corps de la réponse dans le popup et annulera l'édition. Voir plus de détails sur la gestion des erreurs sur le http://code.google.com/p/jquery-datatables-editable/wiki/AddingNewRecords#Handling_server_errors

Questions connexes