génération de variable php et problème pour les réutiliser

Petit nouveau ! | 6 Messages

13 avr. 2005, 11:51

Bonjour,

Voici mon probleme : je génère dans un formulaire autant de checkbox qu'il y a d'entrée dans ma table sql, c'est à dire :
echo '<td><input type="checkbox" name="check'.$id.'" value="checkbox"></td>
Je valide le formulaire et j'arrive sur une autre page php qui doit afficher uniquement les elements "checkés"

pour cela il me faut verifier toutes les variables que le formulaire a envoyé

Mais comment nommer ces variables? J'aimerais creer un tableau, mais je vois pas comment avant l'envoi des informations, et une fois sur la deuxieme page, je ne sais pas comment les appeler.

voici ce que j'aimerais faire :
for ($i=0; $i <= $idmax; $i++)
{
print $check[$i];
};
J'envoie aussi la valeur maxi par le formulaire :
<input type="hidden" name="idmax" value="<? echo $idmax; ?>">

Mammouth du PHP | 859 Messages

13 avr. 2005, 11:54

for ($i=0; $i <= $_POST['idmax']; $i++)
    {
        print $check[$i];
    };
Passe voir ceci : http://www.phpfrance.com/forums/voir_sujet-48.php

Eléphant du PHP | 200 Messages

13 avr. 2005, 11:54

Par exemple :
echo '<td><input type="checkbox" name="check~'.$id.'" value="checkbox"></td> 
et
<?php
foreach($_POST as $nom => $valeur)
{
$pos = strrpos($nom,'~');
if ($pos ==true){
list( $reste, $id) = split('~',$nom);
//traitement
}
}
?>
Univers divided by 0 - cucumber error - reboot

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

13 avr. 2005, 12:13

Pour quoi faire compliqué quand on peut faire simple...

Il faut savoir que HTML traite les champs homonymes comme un tableau.
si plusieurs champs ayant le même nom se trouvent dans le même formulaire, le submit envoi un tableau portant les valeurs de tous ces champs.
La seule condition est que le nom des champs doit finir par [] pour désigner un format tableau.

Exemple :
<form>
<input name=champ[]>
<input name=champ[]>
<input name=champ[]>
<input type=submit>
</form>
Désigne à HTML qu'il s'agit d'un tableau nommé champ de 3 cases

PHP peut reçevoir ce tableau dans une variable à l'aide de $_POST ou $_GET et le traiter exactement comme un tableau PHP.

Exemple :
echo "<form method=post>";
for ($i=0; $i<5; $i++)
 echo "<p><input type='checkbox' name='check[]' value='$i'> Check $i";

echo "<p><input type=submit value=Ok></form>";

echo "<p>Reçus :";
$check = isset($_POST["check"])?$_POST["check"]:null;
if ($check != null)
	foreach ($check as $item)
	      echo "<p>Item $item";
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

13 avr. 2005, 14:24

merci pour vos messages, ça marche parfaitement. C'est le plus beau jour de ma vie depuis celui ou j'ai fait dire des gros mots a ma sound blaster

Mammouth du PHP | 859 Messages

13 avr. 2005, 14:34

Ta vie ne doit pas être très longue alors ;)