Jquery AJAX pubblica su PHP

OK ho costruito la mia stringa json ma non sono sicuro di cosa fare dopo ??

$('#submit').live('click',function(){ var dataString = '['; $('#items tr').not(':first').each(function(){ var index = $('#items tr').index(this); var supp_short_code=$(this).closest('tr').find('.supp_short_code').text(); var project_ref=$(this).closest('tr').find('.project_ref').text(); var om_part_no=$(this).closest('tr').find('.om_part_no').text(); var description=$(this).closest('tr').find('.description').text(); var cost_of_items=$(this).closest('tr').find('.cost_of_items').text(); var cost_total=$(this).closest('tr').find('.cost_total').text(); dataString += '{"row":"' + index + '", "supp_short_code":"' + supp_short_code + '", "project_ref":"' + project_ref + '", "om_part_no":"' + om_part_no + '", "description":"' + description + '", "cost_of_items":"' + cost_of_items + '", "cost_total_td":"' + cost_total + '"}'; }); dataString += ']'; $.ajax ({ type: "POST", url: "order.php", data: dataString, cache: false, success: function() { alert("Order Submitted"); } }); }); 

Nel mio file php stavo tentando di scrivere il dataString in un file di testo in modo che potessi vederne il passaggio ok ma nulla era nel file di testo !? Sto facendo qualcosa di sbagliato lato client o lato PHP, il mio codice php:

  

Perché non provi a build i tuoi dati in questo modo

 var postData = {}; $('#items tr').not(':first').each(function(index, value) { var keyPrefix = 'data[' + index + ']'; postData[keyPrefix + '[supp_short_code]'] = $(this).closest('tr').find('.supp_short_code').text(); postData[keyPrefix + '[project_ref]'] = $(this).closest('tr').find('.project_ref').text(); // and so on }); 

Quindi nella tua chiamata AJAX

 data: postData, 

Ora lo script PHP può elaborare i dati come una matrice multidimensionale

  $data) { echo $data['supp_short_code']; echo $data['project_ref']; // and so on } } 

Questo dovrebbe farlo:

 ... $.ajax({ type: "POST", url: "order.php", data: { 'dataString': dataString }, cache: false, success: function() { alert("Order Submitted"); } }); 

Puoi provare a verificare:

  

Prima converti l’object json in una stringa in js come questo:

 var json_string=JSON.stringify(json_object); 

Poi, passalo a PHP come stringa e poi in php decodificalo, in questo modo:

  

Spero che questo aiuti chiunque a trovare questo thread …

Il problema sarà che stai tentando di accedere a una variabile POST chiamata “dataString” che non esiste. Solo perché hai impostato la proprietà “data” sul contenuto di una variabile chiamata “dataString” non significa che la tua variabile post sarà chiamata “dataString”.

Potresti provare questo:

 data: { "dataString": dataString }, 

Questo passa un object alla funzione jQuery che ha una proprietà chiamata “dataString” e il valore della stringa di dati effettiva. jQuery prenderà tutte le proprietà da questo object (in questo caso solo uno) e le imposterà come variabili post sulla richiesta HTTP che alla fine invierà alla tua applicazione PHP. Ciò consente di accedere ai dati tramite la chiamata $ _POST [“dataString”].

Steve

Ho problemi con l’uso:

 url: "/folder/form.php", 

E devo usare:

 url: "folder/form.php",,