Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/08/2011, 05h44   #1
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
Par défaut Multi checkbox et reqûetes

Salut tout le monde bon mon but est de à partir des checkbox , je clique sur un boutton qui fait appel à une fonction , cette fonction va chercher à partir de la base de données les utilisateur ayant comme Id , la value de ces checkbox ,

le problème c'est dans send de l'ajax , comment devrais je faire pour envoyer toutes les valeurs des checkbox ?
Mon code qui commence depuis la réponse
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
37
38
39
40
41
42
 
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('livre').innerHTML =leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","Ajaxtest.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 de l'auteur
for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
 if(document.forms["formlivre"].elements["auteur"][i].checked) {
idauteur[i] = document.forms["formlivre"].elements["auteur"][i].value;
alert(idauteur[i]);}
xhr.send("idAuteur="+idauteur[i]);}
}}
</script>
</head>
<body>
<form name ="formlivre">
<fieldset style="width: 500px">
<legend>Liste liées</legend>
<label>Auteurs</label>
<input name='auteur'  type="button" value="trouver" onclick='go()'>
<?php
mysql_connect("localhost","root","root");
mysql_select_db("tes1");
$res = mysql_query("SELECT * FROM auteur ORDER BY nom");
while($row = mysql_fetch_assoc($res)){
echo "<input type='checkbox' name='auteur[]' value='".$row["id"]."'>".$row["nom"];}
?>
</select>
<label>Livres</label>
<div id='livre' style='display:inline'>
</div>
</fieldset>
</form>
</body>
</html>
dans l'autre fichier php ,qui fait le traitement
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
echo "<table name='livre'>";
for($i=0;$i<count($_POST["auteur"]);$i++){
if(isset($_POST["idAuteur"])){
mysql_connect("localhost","root","root");
mysql_select_db("tes1");
$res = mysql_query("SELECT id,titre FROM livre
WHERE idAuteur=".$_POST["idAuteur"][$i]." ORDER BY titre");
while($row = mysql_fetch_assoc($res)){
echo "<tr>
<td id='".$row["id"]."'>".$row["titre"]."</td></tr>";
}
}
}
echo "</table>";
?>
Quelqu'un peut m'aider ? Je suis bloqué
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 08h42   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Bonjour,

Tu dois faire une seule send et sérialiser la variable de la forme
Code :
1
2
var idAuteur="idAuteur[]="+val1+"&idAuteur[]="+val2"&idAuteur[]="+val3;
xhr.send(idAuteur);
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 09h49   #3
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
Bonjour , donc le code sera en quelque sorte comme ça ?
Code :
1
2
3
4
5
6
7
8
for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
 if(document.forms["formlivre"].elements["auteur"][i].checked) {
idauteur[i] = document.forms["formlivre"].elements["auteur"][i].value;
}
var idAuteur="idAuteur[]="+val1+"&idAuteur[]="+val2"&idAuteur[]="+val3;
xhr.send(idAuteur);
}
}
je ne vois pas d'où récupérer les val1 et val2 ...
sinon dans le fichier de traitement je fais
Code :
1
2
$res = mysql_query("SELECT id,titre FROM livre
WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
ou
Code :
1
2
$res = mysql_query("SELECT id,titre FROM livre
WHERE idAuteur=".$_POST["idAuteur"][$i]." ORDER BY titre");
avec le $i la variable de boucle qui parcours les checkbox .. ?
Merci pour ton aide .
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 09h55   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Code :
1
2
3
4
5
for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
 if(document.forms["formlivre"].elements["auteur"][i].checked) {
idauteur[i] = "idAuteur[]="+document.forms["formlivre"].elements["auteur"][i].value;
}
xhr.send(idauteur.join("&"));
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h04   #5
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
Quand je reçois ce qui est envoyé , je le traite normalement ?je veux dire un
Code :
WHERE idAuteur=".$_POST["idAuteur"]."
ou alors j'agis sur le tableau ?
Merci
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h07   #6
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
$_POST["idAuteur"] est un tableau.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h09   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Attention, il te manque un } fermante pour le boucle for avant le send
Code :
1
2
3
4
5
6
for (var i = 0; i < document.forms["formlivre"].elements["auteur"].length; i++ ) {
	 if(document.forms["formlivre"].elements["auteur"][i].checked) {
		idauteur[i] = "idAuteur[]="+document.forms["formlivre"].elements["auteur"][i].value;
	}
}
xhr.send(idauteur.join("&"));
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h12   #8
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
Oui donc pas de IN implode .. ?
Je suis désolé si mes questions sont bêtes , mais je suis nouveau là
Je tiens à t'informer que le code javascript ne marche pas j'ignore pourquoi , j'ai ajouté un alert pour verifier mais alert ne marche pas , le send est it dans la boucle for ? je pense non !
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h17   #9
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
J'ai corrigé la boucle fermante mais en vaine
Voilà mes deux fichiers , vous pouvez tester chez vous ?
Fichiers attachés
Type de fichier : php Ajaxtest.php (376 octets, 0 affichages)
Type de fichier : php ajax.php (2,1 Ko, 0 affichages)
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h28   #10
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
Sur firebug j'ai eu :
document.forms.formlivre.elements.auteur is undefined
[Stopper sur une erreur] for (var i = 0; i < document.forms["fo...].elements["auteur"].length; i++ ) {
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 11h03   #11
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Code :
document.forms["formlivre"].elements["auteur[]"]
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 11h33   #12
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
J y 'ai déjà pensé mais quand j'ai fait tel , j'ai eu
idauteur is not defined
Je devrais faire
idauteur =new array(); ?
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 11h37   #13
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Citation:
Envoyé par AyManoVic Voir le message
J y 'ai déjà pensé mais quand j'ai fait tel , j'ai eu
idauteur is not defined
Je devrais faire
idauteur =new array(); ?
Code :
var idauteur =new Array();
et avant le boucle for. je ne sais pas s'il fallait préciser ça aussi.
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 11h40   #14
Nouveau Membre du Club
 
Inscription : juin 2010
Messages : 116
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 116
Points : 28
Points : 28
Non pas la peine de préciser , bon l'ajax marche nickel , le problème maintenant c'est dans le Fetch_assoc , bon fini de vous embêter je vais chercher ailleurs ^_^ Merci pour tout
AyManoVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 07h59   #15
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 269
Points : 7 269
Citation:
Envoyé par AyManoVic Voir le message
Non pas la peine de préciser
J'ai dit ça parce qu'avec un simple recherche sur google, tu aurais pu s'en sortir seul.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h48.


 
 
 
 
Partenaires

Hébergement Web