Nom des variables, php et formulaire

Fermé
cooook - 19 mai 2009 à 17:29
empty Messages postés 837 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 23 février 2016 - 26 mai 2009 à 16:55
Bonjour,

Est-il possible de transmettre une variable ayant un nom différent mais la même valeur?
Par exemple, dans un formulaire:
<select name ="lapin" size="1">
<option value ="0"> choisissez un lapin</option>
<option value ="1"> Jeannot</option>
...
</select>

<select name ="chat" size="1">
<option value ="0"> choisissez un chat</option>
<option value ="1"> félix</option>
...
</select>

Et pour le code PHP de la page de résultats:

$id_animal = $_POST['chat'];
$id_animal = $_POST['lapin'];


J'ai essayé et ça ne marche pas; je dois passer à côté d'une notion fondamentale...
Mais sinon, comment faire?
Merci d'avance!

8 réponses

Utilisateur anonyme
19 mai 2009 à 17:49
Pour untruc comme ca je ferez cela

$id_animal = $_POST['chat'].",".$_POST['lapin'];
Ainsi ta variable $id_animal ="félix,jeannot"

Ou encore
$id_animal[] = $_POST['chat'];
$id_animal[]= $_POST['lapin'];

Ainsi $id_animal[0]="félix"
Ainsi $id_animal[1]="jeannot"
(nombre paire= chat / nombre impaire= lapin)

Je suis sur qu'il y aencore plein d'autre "astuce".
A toi de trouver celle qui te convient le mieux pour la suite de ton code.

0
Salut!

En fait le problème c'est qu'il faut que les variables soient transmises vraiment séparément, parce que c'est un formulaire de recherche avancée avec des listes déroulantes non obligatoires qui peuvent transmettre le même id...Et il y a 80 id différents en vrac dans ma base, du coup je ne peux pas faire le coup des nombres pairs et impaires (enfin si j'ai bien compris!)...
Un autre idée? Merci!
0
Utilisateur anonyme
19 mai 2009 à 22:07
Et la premiere solution/astuce ?

Demain j'essaie de voir si je trouve une autre idée car apparement va pas falloir compter sur d'autre personnes ;)
0
Utilisateur anonyme
20 mai 2009 à 08:22
et un truc comme ca ?

$id_animal[chat][] = $_POST['chat'];
$id_animal[lapin][] = $_POST['lapin'];
...

...
if($id_animal[chat][0]!="choisissez un chat")
{
....
}

if($id_animal['apin][0]!="choisissez un lapin")
{
....
}

------------------
Je pense que tu devrais plutot revoir ta base de donnée ;)

0
Salut!

ça transmet "array" selon debug.txt...
En tout cas, merci pour ton aide!
0
empty Messages postés 837 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 23 février 2016 176
20 mai 2009 à 08:44
Je pense qu'il n'y a rien avoir avec une autre manière de coder, puis-je voir le contenu de ton tag <form> ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bout de formulaire:

<form class="formulaire" action= "traitement.php" method="POST">
<fieldset>
<select name ="lapin" size="1">
<option value ="0"> choisissez un lapin</option>
<option value ="1"> Jeannot</option> // car Jeannot = id_animal 1
</select>
</fieldset>
<fieldset>
<select name ="chat" size="1">
<option value ="0"> choisissez un chat</option>
<option value ="12"> félix</option> //car félix = id_animal 12
</select>
</fieldset>
</form>
0
Utilisateur anonyme
25 mai 2009 à 17:36
Tu es comme moi ? Tu attends la réponse de Empty ?
0
empty Messages postés 837 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 23 février 2016 176
25 mai 2009 à 18:30
Tu ne nous as pas dis ce que tu avais pour l'instant comme retour dans tes variables, tu es censé avoir les retour numérique présents dans l'attribut value de tes listes...
0
Salut!

Oui, j'attendais, car je patauge toujours! Pour l'instant, je fais dans la facilité, en donnant le même name à mes listes, mais bien sur, pas moyen de faire une recherche combinée...
Les valeurs numériques sont bien transmises.
Est-ce que je ne pourrais pas m'en sortir avec une concaténation, du genre avec un "else if" qui prendrait 2 fois en compte la même variable?

else if (!empty ($_POST ['mot_cle']) && (!empty ($_POST ['mot_cle'])))

Peut-être qu'avec une bonne syntaxe ça peut marcher? Je ne sais pas trop si ça peut se faire...
Merci à vous deux!
0
empty Messages postés 837 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 23 février 2016 176
26 mai 2009 à 16:55
Je ne suis pas sur d'avoir tout compris à ton problème, j'ai vu ton code il est correcte, ce que je veux savoir c'est ce que tu veux faire exactement car tu avais demandé si c'était possible de transmettre 2 variables avec le même ID, je ne vois pas pourquoi il y aurait un problème.

Si tu veux savoir d'ou viens le problème procède par étape, d'abord essaye d'afficher la valeur de retour, ensuite essaye avec SQL d'afficher la commande (c'est sûrement à ce niveau) au lieu de l'executer, après l'avoir affichée, copie là et met là dans PHPmyadmin, voir si le résultat est bien celui dont tu as besoin...
0