voila j'ai un tableau et je voudrais que pour chaque cochage ou decochage s'excute une requete SQL
on m'a dit qu'il fallait que j'utilise AJAX mais je n'y connais rien
voici mon tableau
si quelqu'un peut m'aider ça serait cool
merci d'avance
voila j'ai un tableau et je voudrais que pour chaque cochage ou decochage s'excute une requete SQL
on m'a dit qu'il fallait que j'utilise AJAX mais je n'y connais rien
voici mon tableau
si quelqu'un peut m'aider ça serait cool
merci d'avance
qui peut t'aider si tu viens ici en disant "je n'y connais rien"? un tutoriel consacré à ajax, non?
merci pour le tuto mais ça m'explique pas grand chose comment faire mon truc pour que lorsqu'on clic sur une checkbox (cochacge ou decochage) ça execute une requete sql c'est un dire un Update.
si c'est un cochage ça met la valeur à 'O' sinon si c'est un décochage ça met la valeur à 'N'
l'idée, c'est que tu va appeler AJAX en lui passant les bons paramètres avec un évènement onclick sur chacune de tes checkbox.
Globalement inoffensif
Merci de respecter les règles du forum.
Aucune question technique par MP !
_______________________________________________________________________
Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
Tutoriaux HTML/CSS et PHP
l'idée c'est ça et qu'elle puisse rafraichir la page .
Si tu n'y connais rien ou presque.. ajax c'est populaire, mais ptet pas le plus simple a apprehender !
Enfin bref, ca c'est toi qui voit..
Deja t'as besoin d'un script php ou autre, qui fasse la requete sur ta base et te renvoye un message ok ou erreur, par exemple..
Apres, pour appeller ton script php, tu utilises une fonction js dans ce genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function file(fichier) { if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); }
cette fonction tu l'appelles comme ca :
Ici, c'est un script php VerifClient.php et un parametre client, et le retour sera contenu dans ta variable texte
Code : Sélectionner tout - Visualiser dans une fenêtre à part texte = file('/V2_mysql/ajax/VerifClient.php?client='+escape(client))
apres, tu affiches ta variable texte ou tu la teste pour voir si le retour est ok.. et voila tout !
Ah oui, et pour appeller l'evenement quand on clique une checkbox...
Code : Sélectionner tout - Visualiser dans une fenêtre à part onClick='.....'
a+
merci pour les infos mais le petit hic c'est que je ne change pas de page je reste toujours sur la meme.
En fait ce que je voudrais faire c'est lorsque je coche ou décoche la checkbox ça execute le update derrière et que ma page ce rafraichit
voila mais merci pour le début du code ça va m'aider et il me rest plus qu'a faire la fonction par rapport à la checkbox
tout l'interet d'ajax est que la page n'est pas rechargée, justement !!!
Un simple bouton submit, un script php pour l'update et pas besoin d'ajax ! Pourquoi faire compliqué.....
comment faire alors utiliser AJAX ou pas
car mon tableau est créé par un select donc j'ai a peu près 400 lignes dans le tableau et pour chaque colonne mes checkbox ont le meme nom car c'est une boucle qui parcours la requete et qui affiche le résultat
voici le code pour une checkbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if ($result[$i]->PDG == 'O') echo '<td><input type="checkbox" name="pdg" value="PDG'.$result[$i]->client_id.'" CHECKED /></td>'."\n\t"; else echo '<td><input type="checkbox" name="pdg" value="PDG'.$result[$i]->client_id.'" /></td>'."\n\t";
ben oui, mais comment veux tu faire un update si tes checkbox ont toutes le meme nom ???
Tu pourrais les nommer Mycheckbox[id] ou l'id est l'identifiant de la ligne sql.. ou que sais-je.. mais la, tu as un probleme de conception
ben faut que le name comporte l'identifiant .. ou un moyent de retrouver a quoi il correspond, sinon, je ne vois pas comment tu peux faire !
ok mes checkboxs sont différenciées par le numéro du contact et après comment faire?
mais je suis obligé que le name de la checkbox comporte le numéro de la ligne !!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if ($result[$i]->PDG == 'O') echo '<td><input type="checkbox" name="pdg'.$result[$i]->client_id.'" value="PDG" CHECKED /></td>'."\n\t"; else echo '<td><input type="checkbox" name="pdg'.$result[$i]->client_id.'" value="PDG" /></td>'."\n\t";
car sur une ligne il y a 8 checkbox qui ont un nom différents
voici mon code partie ajax
mais j'ai un problème car pour récupérer l'id du client le nom change a chaque ligne commetn faire ?
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 function getXhr(){ if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } } function go(){ getXhr(); // 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; } } // Ici on va voir comment faire du post xhr.open("POST","updatecli.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id du client sel = document.getElementById('cli'); idcli = sel.options[sel.selectedIndex].value; xhr.send("idcli="+idcli); }
voici mon code partie update.php
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 <?php require_once("classes/Connexion.class.php"); //Importation du fichier pour la Connexion require_once("fonctions/templates.php"); require_once("fonctions/fonction.php"); if(isset($_POST['idcli'])){ if(isset($_POST['pdg'])) $pdg='O'; else $pdg='N'; $connexion = new Connexion(); $req = "UPDATE clients SET PDG='$pdg' ,DT= ,SECRETARIAT= ,RESP_MAINT= ,RESP_ESS= ,RESP_INFO= ,OPERATEURS= ,EQUIP_MAINT= where client_id='.$_POST['id']).'"; $res = $connexion->update($req); $connexion->close(); } ?>
si je donne un nom différent à chaque checkbox comment pour savoir quel est la bonne checkbox par rapport à l'execution de la requete
ou alors j'appel les checkbox pareil dans la meme colonne avec en plus le numéro du contact
comment faire pour récupérer le nom de la checkbox que je viens de cliquer ou sélectionner?
en faisant un truc genre :
comme ca tu as ton objet dans javascript et dc tu sais son id
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 onclick="javascript:maFonction(this)"
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager