Je cherche à créer un formulaire qui contient un nombre dynamique de zones de texte d'entrée. Je voudrais que chaque zone de texte fasse partie d'un tableau (cela me faciliterait en théorie la lecture en boucle, d'autant plus que je ne connaîtrai pas le nombre de champs de texte qui existeront éventuellement). Le code HTML aimerait quelque chose comme:Accès à un éventail de zones de texte entrée HTML à l'aide jQuery ou simplement Javascript
<p>Field 1: <input type="text" name="field[1]" id="field[1]"></p>
<p>Field 2: <input type="text" name="field[2]" id="field[2]"></p>
<p>Field 3: <input type="text" name="field[3]" id="field[3]"></p>
<p>Field 4: <input type="text" name="field[4]" id="field[4]"></p>
<p>Field 5: <input type="text" name="field[5]" id="field[5]"></p>
Ces données seraient alors envoyées à un script PHP et serait représentée par un tableau - ou tout au moins, qui est la théorie.
Donc, ma première question est, est-ce réalisable en utilisant le HTML? Les formulaires sont-ils conçus pour fonctionner de cette façon?
Si la réponse est « oui », comment pourrais-je aller ensuite sur l'accès à chacun de ceux qui utilisent jQuery ou à défaut, bon vieux JavaScript?
J'ai essayé d'y parvenir en utilisant le code jQuery suivant:
someval = $('#field[1]').val();
et
someval = $('#field')[1].val();
et le code JavaScript suivant:
someval = document.getElementById('related_link_url')[1].value;
Mais je ne l'ai pas eu n'importe quelle chance.
Merci d'avance.
Edit:
Je dois souligner que, d'un point de vue Javascript, je l'ai eu de travail où l'ID de chaque élément est quelque chose comme champ_1, Champ_2 etc. Cependant, je pense que si je pouvez y parvenir en plaçant chaque zone de texte dans un tableau, il serait plus facile et plus facile de gérer le code.
C'est intéressant. Ainsi, le champ de nom peut inclure [] s mais l'ID ne peut pas. Donc au moins d'un point de vue PHP, je serais toujours capable de traiter les données $ _POST ['field'] comme un tableau? Et en utilisant $ ("input [nom = champ [1]]"). Val() Je peux toujours accéder à la valeur en utilisant jQuery. Donc, la clé est d'utiliser le nom et ne dépend pas de l'ID. – greggannicott
@greggannicott: Les crochets sont autorisés dans les attributs de nom mais pas dans les attributs d'ID. Je pense que la façon correcte de l'utiliser pour PHP est d'avoir 'name name '[]" 'pour chaque champ et non' name = "[n]" 'mais je pourrais me tromper et les deux pourraient fonctionner. –