Problème de transmission de valeur d'un formulaire

BFH
Eléphant du PHP | 214 Messages

12 mai 2005, 21:36

Est ce que quelqu'un sait comment faire pour avoir un
if(isset($_GET['nom_de_la_variable']))
Où le nom de la variable est un champs indexé.
Explication : je voudrais recupérer des noms de variable tels que Ch0, Ch1, Ch2, ..., Ch8, ..., Ch14. C'est à dire des lettres suivit d'un chiffre aléatoire compris entre 0 et 15.

Je ne peux pas mettre:
 if(isset($_GET['Ch'])) 
car cela ne fonctionne pas.

Ou encore
for($i=0, $i<=$Nombre_max_qui_suit_Ch, $i++)
  {
  if(isset($_GET['Ch']$i))
    {
    $CHAMPS$i=$_GET['Ch']$i;
    }
  }
Car cela ne fonctionne pas non plus!
Est ce que quelqu'un pourrait me donner le bon code, ou corriger le code précédent?
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Eléphant du PHP | 357 Messages

13 mai 2005, 11:25

encore une fois je suis pas sure de comprendre la question :? j ai un pe de mal :p
Enfin
deux questions :
-que contiend ta valeur Ch ?
-ton incrémentation c'est toi qui la fait ou elle se fait automatiquement ?

ViPHP
ViPHP | 2144 Messages

13 mai 2005, 12:02

Pourquoi ne pas utiliser un tableau et un foreach ?
Si tu utilise $ch[] dans un formulaire html comme nom pour plusieurs champs, tu récupereras les valeurs dans un tableau $ch[] que tu peux parcourir avec l'instruction foreach()

BFH
Eléphant du PHP | 214 Messages

13 mai 2005, 15:45

Iclo, tu pourrais me donner un exemple car je ne vois pas trop comment utiliser ce que tu me dit.

Seayoung, ChX retourne des valeurs telles que Réseau ou TCP/IP ou Carte Mère par exemple.
L'incrémentation c'est moi qui l'ait faite car sur une page j'ai qqch comme ça :
$i=0;
while($row=mysql_fetch_assoc($result))
{
?>
<td> <?= $row["Nom_Informatique"]; ?></td>
<td> <input type="checkbox" value=<?= $row['Nom_Informatique'];?> name="Ch<?=$i;?>"> </td>
<?
}
Donc apres cela il y a un bouton de validation qui sert à transmettre les divers champs Ch que l'un aura coché.

C'est pour cela que je voudrais recupérer les valeurs des différents ChX transmis.

Est ce que c'est assez clair, sinon n'hesite pas a me redemmander. 8)
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Eléphant du PHP | 357 Messages

13 mai 2005, 15:57

petite question ( encore )
pourquoi ne ferais tu pas un truc du genre:
pour ton formulaire :
<input type="checkbox" value=<?= $row['Nom_Informatique'];?> name="Ch">
et apres tu met ta fonction :
for($i=0, $i<=$Nombre_max_qui_suit_Ch, $i++)
  {
  if(isset($_GET['Ch']))
    {
    $CHAMPS="$_GET['Ch']"."$i."";
    }
  }
ou quelque chose dans le gout ....
en gros garder ton Ch fixe et l'implémenter de $i

BFH
Eléphant du PHP | 214 Messages

13 mai 2005, 20:40

Si je garde Ch fixe alors ça ne sert à rien d'avoir un checkbox, autant avoir un boutton radio, non?

Or moi ce que je veux c'est pouvoir selectionner une ligne, ou deux ou plus ou toutes ou aucune. C'est pour cela que j'incrémente Ch

Si tu pense que j'ai tort hesite pas a me le dire
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

BFH
Eléphant du PHP | 214 Messages

17 mai 2005, 14:17

Bonjour,
Mon sujet est assez long alors je repette mon problème :
Comment faire pour recupérer des valeur telles que Ch0, Ch1, Ch2, ChX...
Explications: Je remplis sur une page un formulaire en checkbox pour ne pouvoir selectionner que une case ou plusieurs selon mon choix :
 $i=0;
while($row=mysql_fetch_assoc($result))
{
?>
<TR>
<TD width="10%">&nbsp;</TD>
<TD><font color="#0033CC" ><B> <?=$row["IPage"];?></B></font></TD>
<TD><CENTER><INPUT TYPE=checkbox value="<?=$row['IPage'];?>" name="Ch<?=$i;?>"></CENTER></TD>
<TD width="10%">&nbsp;</TD>
</TR>
<TR>
<TD></TD>
</TR>
<?
$i++;
} 
Sur la page d'après je veux recupérer les champs que j'ai coché. Pour cela j'ecris :
if(isset($_GET["Ch"]."$i"))
{
$Ch=$_GET["Ch"]."$i";
}
Je sais que cela est faux et ne fonctionne pas mais je ne sais pas comment faire pour reparer mon code, est ce que quelqu'un pourrait m'aider?
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 14:25

Et ce code donne quoi ?
if(isset($_GET["Ch"]."$i"))
{
  $Ch=$_GET["Ch".$i];
}
Si je me souviens bien du fonctionnement, PHP devrais commencer par interpreter "Ch".$i et donner "Ch1" puis il devrais intrpreter $_GET["Ch1"] !!

A tester :roll:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

BFH
Eléphant du PHP | 214 Messages

17 mai 2005, 14:42

Non désolé cela me retourne:
Parse error, expecting`'," or`')" in chemin du fichier on line XX

J'ai essayé aussi avec :
if(isset($_GET["Ch"]."'$i'")) 
ou
if(isset($_GET["Ch".$i])) 
Mais sans succès.

Merci quand même
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

17 mai 2005, 14:44

Attend, je me suis trompé dans le code que je t'ai donné :oops:

J'ai fait que la moitié du travail :oops: :oops:

Voilà le code complet
if(isset($_GET["Ch".$i]))
{
  $Ch=$_GET["Ch".$i];
}
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

BFH
Eléphant du PHP | 214 Messages

17 mai 2005, 14:48

J'ai essayé aussi avec :
if(isset($_GET["Ch".$i])) 
Mais sans succès.
J'y avais pensé mais ça marche pas 8-[
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Mammouth du PHP | 19672 Messages

17 mai 2005, 14:49

Salut,
modifie ton formulaire comme ceci :

Code : Tout sélectionner

<TD><CENTER><INPUT TYPE=checkbox value="<?=$row['IPage'];?>" name="Ch[]"></CENTER></TD>
Ta variable $_GET['ch'] est alors un tableau indexé, il te suffit de faire un count() pour savoir combien de cases ont été cochées et tu traiteras toutes tes cases.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

BFH
Eléphant du PHP | 214 Messages

17 mai 2005, 14:59

Pardon Cyrano mais je ne sais pas comment on utilise le count avec le Ch[] :oops: :oops:
Pourrais tu me l'expliquer stp
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...

Mammouth du PHP | 19672 Messages

17 mai 2005, 15:04

En fait, tu commences par récupérer ta variable:
$ch = $_GET['ch'];
Ensuite tu comptes.
$nb_cases_cochees = count($ch);
c'est tout, après ça, tu peux avoir un point de repère dans une boucle pour le traitement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

BFH
Eléphant du PHP | 214 Messages

17 mai 2005, 15:12

Euh en fait c'est pas tout a fait ce dont j'ai besoin

Ce que tu viens de me donner c'est la formule pour connaitre le nombres de Ch cochés à la page d'avant. Moi ce dont j'aurais besion c'est la formule qui me permettre de recuperer les valeurs des Ch cochés à la page d'avant.

Désolé si dans mes propos ça n'était pas clair.
Perdu dans la matrice avec un guide michelin ](*,) #-o
Adorateur de Cyrano
Parti puis revenu...