Page 1 sur 1

J'ai un petit problème checkbox

Posté : 29 avr. 2008, 04:28
par NiCeMaN29
Bonjour j'utilise un checkbox avec while ...

Dans mon index.php j'ai ceci
	while( $row = mysql_fetch_assoc($result) ) {
		$sql = sprintf("select * from tt_%s where ID = %s", intval($row['TypeID']), intval($row['ListingID']));
		$result2 = $mysql->exSql($sql) or die($mysql->debugPrint());
		if(mysql_num_rows($result)>0){
			$row2 = mysql_fetch_assoc($result2);


       echo "<form method=\"post\" action=removesaved.php onSubmit=\"return test(this)\">";

            printf("

            <input type=\"checkbox\"   name=mon_champ[]   value=\"TypeID=".$row['TypeID']."&ListingID=".$row['ListingID']."\">

      <a href='detail.php?fatherID=%s&TypeID=%s&ListingID=%s'>%s</a></input> &nbsp;&nbsp;&nbsp;&nbsp;
             <br>", $row['FatherID'], $row['TypeID'], $row['ListingID'], $row2['Titre']);

		}

	}
     echo "<input type=Submit value=ok ></input></form>";
Puis dans removesaved.php

J'ai ceci , c'est suposé quand je clique sur un checkbox sa delete le checkbox selectionnez.
	$memberID = $_SESSION['memberID'];

if (isset($_POST['mon_champ'])) {
   for ($i = 0; $i < count($_POST['mon_champ']); $i++) {





	$node = new sqlNode();
	$node->table = "savedlistings";
	$node->where = "where MemberID = $memberID  and " . $_POST['mon_champ'][$i] . "";
	if(($result = $mysql->delete($node)) === false )
		die($mysql->debugPrint());
}
}
Le probleme , Il recupere les données . Mais riens ne delete . Puis quand sa delete , sa delete tout au complet ....

Aidez moi et esperant que je suis clair :P

Posté : 29 avr. 2008, 09:08
par ouckileou
Modération :
NiCeMaN29, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ


Et le debug de ta requête, il donne quoi ?

Posté : 29 avr. 2008, 09:58
par Truc
Il ne manquerait pas un nom de champ après AND...
$node->where = "where MemberID = $memberID  and " . $_POST['mon_champ'][$i] . "";

Posté : 29 avr. 2008, 10:01
par steph29
ton erreur viens d'ici:
<input type=\"checkbox\"   name=mon_champ[]   value=\"TypeID=".$row['TypeID']."&ListingID=".$row['ListingID']."\">
si tu as fais un echo de ta requete d'update tu comprendrais ton erreur ;)

separe les deux variables

ceci ne me semble pas tres secure comme code: :?
$node->where = "where MemberID = $memberID  and " . $_POST['mon_champ'][$i] . "";
sinon pour t'aider un peu plus tu peux nous donner la requete du $result?
car y a de l'optimisation a faire...

salut

Posté : 29 avr. 2008, 12:23
par NiCeMaN29
Merci de reponse aussi vite , mais steph29 Comment je peux faire pour reglé le problème , Je suis un peu débutant la dedans ....

Posté : 29 avr. 2008, 12:37
par steph29
deja repondre a la question :wink:

si je comprend ton script, tu veux affiche en fonction d'un typeid, les listingid correspondant.

donc voici comment procede:

Code : Tout sélectionner

recuperation du typid requete pour recuperer les listingid preparation de mon formulaire (<form etc.) on passe en agument a mon formulaire l'idtype (<input type="hidden" name="typeid" value="la_valeur_de_mon_typeid" />) pour chaque element de ma requete { j'affiche ma checkbox avec la bonne valeur (<input type="checkbox" name="mon_champ[]" value="valeur_de_mon_listingid" />) } je ferme mon formulaire (</form>)
ensuite dans ton fichier de traitement il faut controler les champs pour rendre un peu plus secure ton code ;)

donc voila un debut ;) n'hesite pas a nous montrer ce que tu as fait meme si c'est faut.

Re

Posté : 29 avr. 2008, 20:43
par Niceman29
Merci steph29 pour les réponses rapides

Alors steph29 tu me dis comme suit .

Code : Tout sélectionner

echo "<form method=\"post\" action=removesaved.php onSubmit=\"return test(this)\">"; echo "<input type=\"hidden\" name=\"TypeID\" value=".$row['TypeID']." />"; printf(" <input type=\"checkbox\" name=mon_champ[] value=\"ListingID=".$row['ListingID']."\"> <a href='detail.php?fatherID=%s&TypeID=%s&ListingID=%s'>%s</a></input> &nbsp;&nbsp;&nbsp;&nbsp; <br>", $row['FatherID'], $row['TypeID'], $row['ListingID'], $row2['Titre']); } }
echo "<input type=Submit value=ok ></input></form>";


Mais la récupération sur removesaved.php reste la meme ?

Re

Posté : 29 avr. 2008, 20:46
par niceman29
UN GROS MERCI setph29 sa marcheeeeeeeeeeeeeeeeeeeeeeee


MERCI !

Posté : 29 avr. 2008, 21:52
par ouckileou
Mission modération accomplie, l'utilisateur utilise désormais les balises bbcode de façon pertinente ! :D

rE

Posté : 30 avr. 2008, 00:48
par NiCeMaN29
Hehehhee