Checkbox,php et formulaire

Fermé
toch-pa - 25 nov. 2008 à 20:58
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 - 25 nov. 2008 à 22:14
Bonjour,

Bonsoir à tous!
Voila je m'explique, je suis en trin de crée un site où il le modérateur peux modérer les commentaires.

Pour ce faire, je fait une requête pour afficher les coms qui n'ont pas encore été validé.(boucle)
et à chaque com, j'ajoute une case à cocher.
au moment ou le modérateur clique sur "modérer", je voudrais que les coms cocher soit effacer, et les autres, sauvegarder.

Mon problème se passe au niveau des checkbox, voyez plutot




// ...

$sql = mysql_query($requete) or die ('Erreur SQL !'.$requete.''.mysql_error());
while($data = mysql_fetch_array($sql))
{
$id = $data['id'];
$pseudo = $data['pseudo'];
$email = $data['email'];
$com = nl2br($data['com']); // Effectue les retours à la ligne
$date = $data['date'];
$heure = $data['heure'];
$article = $data['fichier'];

// Insère les données dans la fenêtre
echo "<div class='champscom'>";
echo "<div class='article'>Sur l'article : ".$article."</div><br>";
echo "<div class='pseudo'>De : ".$pseudo."</div>";
echo "<div class='date'>Posté le : ".$date."</div><br>";
echo "<div class='heure'>à ".$heure."</div>";
if ($email != "") echo "<div class='email'>Email : <a href='mailto:".$email."'>".$email."</a> </div><br>";
echo "<br><div class='com'>".$com."</div><br>";
echo "<form name='modere' method='post' action='entrer.php?page=admin&voir=com&modere=true;'>";
echo "<div class='check'>Effacer <input type='checkbox' name='efface[]' value='".$id."' /></div>";
echo "</div><br>";

}
echo "<center><input type='submit' name='valider' value=' Valider/Effacer '></center></form>";



ce morceau affiche mes coms.

Ensuite je ne sais pas comment récupéré les checkbox pour dire :

Si t'es cocher --> tu fais -ci
Si t'es pas cocher -> tu fait ca.

LE TRUC, c'est que je peux pas savoir ni combien j'ai de com, ni l'ID du com!

alors comment faire??

Merci de votre aide..

3 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
25 nov. 2008 à 21:37
bonsoir tu peut te servir des array

exemple:
dans tes checbox tu declare un tableau ici==> name="mail[]" (les [] servent à ça )
<td>
<input type="checkbox" id="mail" name="mail[]" value="<? echo $valeur1'/'.$valeur2'/'..etc.. ?>" checked="checked"/>
</td>


ensuite tu envoie par post ou get suivant ta methode et tu recupere de cette façon les valeurs que tu a placée dans value en faisant une boucle
//recup des checkbox
//on récupère le tableau des checbox cochées
$tab_chk =$_POST['mail']; 

//debut de la boucle de recup
  foreach($tab_chk as $adr)
  { 
  //je fais un spilt pour separer les valeurs
  $recpre=split('[/]', $adr);
   $recadresse=split('[/]', $adr);

//j'attribue les valeurs
   $prenom=$recpre[1];
   $adresse=$recpre[0];
//etc...
}


voila c'est un exemple que j'ai repris d'un code que j'ai fait pour mon site qui me permet d'e,voyer ou pas un mail aux membres , maintenant à toi d'adapter en fonction de tes besoins..

@+
0
Merci

Mais je pense que tu n'as pas bien cerné le problème, je me suis peut etre mal exprimer.

En fait, je ne sais pas combien de checkbox je peut avoir car je ne sais pas combien de nouveau com je vais avoir.

Pareil pour les ID du coup.

il faudrai que je récupere :

- Nombre de com -> (nombre de checkbox)
- Combien sont cocher -> lesquels? (avec l'ID) -> action();
- Combien ne sont pas cocher -> lesquels -> autresAction();

Merci
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
25 nov. 2008 à 22:14
si j'ai bien compris ,et c'est pas un probleme de savoir combien tu a de checbox vu que tu fait une boucle par derriere ,tant qu'il y aura des chbx cochés elle te renverrons un resultat
et pour faire la difference entre une chbx cochée ou pas tu recupere sa valeur

idsans mon exemple
$tab_chk =$_POST['mail'];
si c'est vide c'est pas cochée sinon s'est cochée...
0