Bonjour,
J'ai un requête sql avec un boucle while pour m'afficher des messages. Chaque message avec un formulaire (bouton) d'acceptation ou de refus...
La requête :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?php // $oui = 'oui' ; $reponse = $bdd->prepare('SELECT * FROM jobs WHERE admin = ?'); $reponse->execute(array($oui)); while($donnees = $reponse->fetch()) { echo ' name '.$donnees['name'].'</br> <div id="bouttons_sous_msg"> <form action="" methode ="" > <input type="hidden" name="id_ist_job" value="'.$id_ist_job.'" id="id_ist_job" /> <input type="hidden" name="name_ist_job" value="'.$donnees['name'].'" id="name_ist_job" /> <input type="hidden" name="adresse_user" value="a" id="adresse_user" /> <input type="hidden" name="name_user" value="'.$_SESSION['name'].'" id="name_user" /> <input type="button" id="ajoute_au_liste" value="ajout dans list" /> </form></div> '; } ?>
Et j'ai un script jQuery pour valider le formulaire sans quitter la page :
Mon problème est quand la requête affiche les messages avec les boutons, le script jQuery va toujours prendre les valeurs du premier formulaire. Exemple : quand je choisis d'ajouter le 5ème travail à ma liste (clic sur bouton d'ajout du 5ème message), le script jQuery n'insère pas les infos dans la bdd. Mais si je choisis le premier travail (clic sur le premier bouton 'ajout' du premier message) tout marche bien (insertion en bdd et valeur exacte).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 $(function() { $('#ajoute_au_liste').click(function() { var id_ist_job = $('#id_ist_job').val(); var name_ist_job = $('#name_ist_job').val(); var adresse_user = $('#adresse_user').val(); var name_user = $('#name_user').val(); $.post('../../models/boite_poster/accept_added_istichara_job.php', {'id_ist_job':id_ist_job,'name_ist_job':name_ist_job,'adresse_user':adresse_user,'name_user':name_user}); }); });
Autre fois, j'ai essayé d'utiliser ajax avec ce script (je fais onclick="formulIP" dans le formulaire) :
Mais ici presque le même problème, quand je choisis le travail 4 ou 5 (bouton formulaire 4 ou 5), le script insère toujours en base de données les valeurs du premier formulaire et premier message...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
38
39
40
41
42 function callScript ( scriptName, args ) { var xhr_object = null; // ### Construction de lobjet XMLHttpRequest selon le type de navigateur // Cas des navigateurs de type Netscape (Firefore, Conqueror, etc.) if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest(); // Cas du navigateur Internet Explorer else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); // Cas des navigateurs ne comprenant pas cette technologie (anciens navigateurs) else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("POST", scriptName, true); ///////////////////////////////////////////////// xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { alert('bien'); } return xhr_object.readyState; } //////////////////////////////////////////////// // XMLHttpRequest xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // Envoi de la requête xhr_object.send(args); } function formulP () {// --- Récupération des paramètres nécessaire au script PHP var id_ist_job = document.getElementById("id_ist_job").value; var name_ist_job = document.getElementById("name_ist_job").value; var adresse_user = document.getElementById("adresse_user").value; var name_user = document.getElementById("name_user").value; var data = "id_ist_job=" + id_ist_job + "&name_ist_job=" + name_ist_job + "&adresse_user=" + adresse_user + "&name_user=" + name_user; // --- Appel au script PHP de traitement callScript("../../models/boite_poster/accept_added_istichara_job.php",data); }
Je trouve que les deux script toujours tombent sur le premier formulaire dans la page qui porte les id (id_ist_job, name_ist_job...). Il prend les id du premier formulaire et ses valeurs et non pas la 5ème ou 4ème puisque c'est un seul formulaire qui se répète dans la boucle while alors des formulaires avec les mêmes id et avec des valeurs différentes.
Pièce jointe :
Comment faire s'il vous plait ?
J'ai choisi d'utiliser le script jQuery
PS : pardonnez moi pour orthographe, le français n'est pas ma langue maternelle. (modéré si possible par l'équipe)
Partager