2010-08-26 3 views
1

Existe-t-il un cas (comme un navigateur excentrique) où l'ID d'un champ de saisie de formulaire devient la clé de $ _POST, $ _GET ou $ _REQUEST au lieu du nom du champ?

Nous avions des problèmes avec un champ où l'ID ne correspondait pas au nom. Changer l'ID à apparier semblait résoudre le problème. Le problème était purement PHP parsing; aucun JS impliqué.

Coïncidence?

Google renvoie pas une telle chose ...


Une fonction (désolé, ancien code PHP4) génère le champ. En voici une partie

echo "<select name=\"$varName"; 
echo "_dd\" id=\"$varName"; 
echo "e_dd\">\n"; 

Supprimer le 'e' de cette dernière ligne l'a apparemment corrigé. Je ne l'ai pas fait moi-même; Quelqu'un m'a dit qu'il a réglé le problème. Il n'a pas brisé tous les champs de date, il semblait être un problème intermittent. C'est pourquoi j'ai immédiatement pensé à une étrange bizarrerie du navigateur.

+4

Un code et des exemples seraient utiles? Utilisez-vous JavaScript pour soumettre le formulaire? – Extrakun

+1

@Travis Coller du code. – Chris

+0

Absolument aucun JS, juste un bouton de soumission. Le champ en question est un champ de date avec trois listes déroulantes nommées like (field_yyyy, field_dd, field_mm). Du côté réception, une fonction PHP passe par $ _POST, reconnaît qu'il y a une date, les concatène au format approprié, leur échappe et les saisit dans la base de données. – Travis

Répondre

0

Non, c'est le name attribute that names the control field:

"nom de commande" est une commande est donnée par son attribut name. La portée de l'attribut name pour un contrôle dans un élément FORM est l'élément FORM.

+0

Je pense que ce qu'il dit c'est que pour une raison quelconque cela semble être * pas * le cas – fredley

+0

@fredley ce cas, pour autant que je sache, est impossible à moins qu'il ait du javascript avec ses attributs d'élément. Mais il a dit "purement PHP" – Chris

+0

Votre réponse ne couvre que HTML 4. Voir la réponse de hopeseekr. – jmz

0

Le code propre est un bon code :). Pouvez-vous vérifier que cela ne fonctionne pas?

echo "<select name='".$varName."_dd' id='".$varName."e_dd'>\n"; 

Il serait bon de voir le code HTML généré aussi.

+0

'echo '. Il indique en outre que dans XHTML 1.1, chaque fois que vous avez un élément avec à la fois nom et identifiant: "si l'attribut name est défini pour un élément, l'attribut id doit également être défini comme étant le même". –