11485 sujets

JavaScript, DOM et API Web HTML5

Bonjour
Je suis entrain d'installer un script d'Update via Jquery d'une base de donnée MYSQL.
Le principe est que pour un panier d'achat le client doit préciser lors d'une étape de validation un nom "pour" et un nom "de la part de". Cette chose est à effectuée pour chaque article (il y en a rarement plus de 3).

Pour se faire j'utilise donc un Update de la BDD via Jquery. Le principe du script est donc un FORM interprété sans rechargement, juste en renseignant un INPUT TXT.

Dans l'absolu cela fonctionne, en tous cas très bien quand j'ai un seul article. Or dès que j'ai deux articles, donc deux formulaires, c'est toujours l'ID du 1er qui est pris en compte et du coup la BDD de donnée n'est pas Updatée correctement.

Voici mon fichier actions.js
$(document).ready(function() {
    $(".formelt").click(function() { $(this).css('background-color', '#F3F781') }); //changer la couleur pour indiquer que le champ est actif
    $(".formelt").blur(function() {
        var ID = $("#ID").val(); // l'id de l'élément à modifier
        var FieldName = $(this).attr("id"); // le nom du champ
        var FieldValue = $(this).val(); // la valeur du champ
        var datastr = "&ID=" + ID + "&FieldName=" + FieldName + "&FieldValue=" + FieldValue + ""
            $.ajax({
                type: "POST", //post ou get
                url: "updatedynamique.php", // le nom du fichier contenant l'update DB
                data: datastr , // les données 
                });
        $(this).css('background-color', '#EEE'); // changer la couleur du champ 
        return false; 
    });
}); 


et voici le code html pour deux articles par exemple :

<form name="12173444" id="12173444" action="updatedynamique.php" method="POST"> <input type="hidden" id="ID" name="ID" value="12173444"> 
 Massage 90mn Duo Hawaien 
<input type='text' id="panier_delapart" name='panier_delapart' class='formelt'> 
<input type='text' id="panier_pour" name='panier_pour' class='formelt'>
<input type='submit' id="12173444" name='valide' value='VALIDER'>
</form> 

<form name="13183449" id="13183449" action="updatedynamique.php" method="POST"> 
<input type="hidden" id="ID" name="ID" value="13183449"> 
Massage 30mn Solo Californien
<input type='text' id="panier_delapart" name='panier_delapart' class='formelt'>
<input type='text' id="panier_pour" name='panier_pour' class='formelt'>
<input type='submit' id="13183449" name='valide' value='VALIDER'>
</form> 


Vous remarquerez que j'ai identifié les <form> et les <submit> pour voir si ça changeait mais rien n'y fait !
Modifié par rubenxela (07 Oct 2017 - 22:37)
Modérateur
Hello,

c'est normal... Tu soumets un formulaire seulement, mais avec plusieurs articles ! Rien qu'en écrivant cette phrase, je te donne la solution. En t'aiguillant vers la solution, je te pose ces deux questions :
- Dans ton formulaire, quel est l'élément HTML permettant de récupérer l'article ?
- Dans ta requête AJAX, quelle est l’instruction permettant de récupérer ton article ?

À mon avis, tu devras par la suite, modifier ton contrôleur et ta requête AJAX de ce fait. Smiley cligne