Formulaire insertion BDD array et retour ajax
Bonsoir,
J'ai un formulaire avec la possibilité de rajouter autant d'input voulu (via script javascript).
Jusque là tout va bien, l'enregistrement en BDD s'effectue bien.
Maintenant, j'aimerais ajouter un script ajax pour ne pas avoir à recharger ce formulaire lors de la soumission (réussie ou retour d'erreurs).
J'ai utilisé celui que j'utilisais jusqu'à présent, le problème c'est que dans ce cas là, j'ai un tableau. Et je ne sais comment le gérer.
Voici mes codes.
Code php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
$id_p_f = $_POST['prod_exist'];
$r_c = $_POST['ref_commande'];
$n_p = $_POST['new_prod'];
$u_c = $_POST['unite_comm'];
$q_p = $_POST['quantite_comm'];
$px_ht_c = $_POST['prix_ht_comm'];
$tva_p = $_POST['tva_prod_comm'];
$d_c = dateUS($_POST['date_new_comm']);
$p_v = '0';
end($px_ht_c);
$lastItem = key($px_ht_c);
$insertQuery = "INSERT INTO commandes (id_prod_fournisseur, id_societe, num_comm, designation_comm, unite_comm, quantite_comm, prix_ht_comm, taux_tva_comm, date_commande, paiement_fournisseur) VALUES";
$valuesQuery='';
foreach( $px_ht_c as $key => $n ) {
$valuesQuery .= "('". $id_p_f[$key] . "', '". $_SESSION['auth_id_societe'] . "', '". $r_c . "', '". $n_p[$key] . "', '" . $u_c[$key] . "', '" . $q_p[$key] . "', '". $n . "', '" . $tva_p[$key] . "', '" . $d_c . "', '" . $p_v . "')";
if($key === $lastItem) { //n'affiche pas la virgule après le dernier (value1, value2...)
$valuesQuery .= '';
}
else{
$valuesQuery .= ',';
}
}
$valuesQuery .= ';';
$stmt = Cnx::connectCnx()->prepare($insertQuery . $valuesQuery);
$stmt->execute();
var_dump($insertQuery . $valuesQuery);
echo "ok";
} |
Code js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
$(function(NewCommande) { //Affiche un message de réussite ou d'erreur lors de l'enregistrement d'une nouvelle commande
$(document).ready(function() {
$("#new_commandes_ajax").on('submit', '#form_new_commandes', function() {
console.log( $(this).serialize() );// on vérifie les erreurs
console.log( $( this ).serializeArray() );
$.ajax({
url: "gest_comm_enr.php",
type: "POST",
dataType : 'html',
data : $(this).serialize(),
success: function(data) {
if($.trim(data) == "ok"){
$(".error").empty().html("<div class='apres_valid_mess'>Enregistrement de la commande effectué.</div>").delay(1300).hide(200, function(){ $(this).html('').toggle()});
document.forms.form_new_commandes.reset();
}
else {
$(".error").empty().html(data).delay(2300).hide(200, function(){ $(this).html('').toggle()});
}
},
error : function(resultat, statut, erreur){
$(".error").html("Une erreur s'est produite.");
}
});
return false;
});
});
}); |
Quelqu'un a une idée peut être ?