Nom des variables, php et formulaire

cooook -  
empty Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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
coook
 
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
 
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
 
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
coook
 
Salut!

ça transmet "array" selon debug.txt...
En tout cas, merci pour ton aide!
0
empty Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   176
 
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
coook
 
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
 
Tu es comme moi ? Tu attends la réponse de Empty ?
0
empty Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   176
 
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
cooook
 
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 838 Date d'inscription   Statut Membre Dernière intervention   176
 
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