Bonjour à tous,
J'ai une fonction (c'est de l'AJAX, mais ma question est plus orienté javascript)
qui lance une fonction ajax. Quand on est en mode readystate il execute une fonction javascript deroulant_opem.
A ce moment là, j'ai besoin de savoir le dernier enregistrement de la base de donnée.
J'ai donc ajouté le code qui se trouve juste en dessous de la fonction deroulant_open();
Dans mon developpement, quand je clique sur le boutton "ajouter clients" il va appelle a la fonction update_client(val) et val aura pour valeur "add".
Donc quand je clique sur le boutton "ajouter client", j'ai une requette MYSQL qui va chercher la valeur du dernier enregistrement.
Une fois le secipt terminé, j'ai un nouveau cient dans ma base de donné, et si j'ajoute encore un client, la variable last_entry devrait me retourner une valeur plus grande (de +1) que la précdédente insertion, puisque c'est une autre nouvelle insertion.
Le problème c'est que last_entry me retourne toujours le même nombre, même s'il y a eu de nouvelle entrée.
Pour pas que ce problème se produit, je dois rafréchir ma page..
Alors je me suis demandé si le requete MYSQL est exécuté au chargement de la page uniquement, et pas à l'appelle de la fonction.
Comment pourrais-je faire alors pour que la last_entry correspond toujours au dernier enregistrement réel effectué dans la base de donnée?
Code JAVASCRIPT : 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 function update_client(val){ //http://siddh.developpez.com/articles/ajax/ var xhr = getXhr(); // INSTENTIEE IN js/getXhr.js // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('error-display').innerHTML = leselect; deroulant_open(); if(val=="add"){ last_entry = <?php include($root.'sql/db_connect.php'); $sql_last = "SELECT max(id_clients) FROM tb_clients"; $query_last = mysql_query($sql_last)or die(mysql_error()); $data_last=mysql_fetch_assoc($query_last); echo $data_last['max(id_clients)']; ?>; //last_entry=last_entry+1; $("#id_client").val(last_entry); $("span#client_id").html(last_entry); alert(last_entry); } }else{ } } [.. suite de la du code]
Merci pour vos lumières
Partager