Envoi valeur checkbox dynamique
Bonjour à tous,
J'essaie de créer un formulaire qui contient un <select> dans lequel se trouve toute une liste d'articles.
Ce <select> a comme attribut : onChange='ajout_input(this.form)' ce qui fait que, si je sélectionnes dans cette liste l'article "article_1", cela active la fonction ajout_input(form).
La fonction ajout_input s'occupe de créer, à la sélection d'un article, un <input> avec comme attribut : type 'checkbox' et comme nom, le nom de l'article (article_1).
Pour être plus clair, voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="js/ajout_article.js"></script>
</head>
<body>
<br /><h1>Création fiche client </h1>
<form method="post" name="create_fiche" action="create_fiche.php">
Article :
<select id="liste_articles" name="liste_articles" onChange='ajout_input(this.form)'>
<option></option>
<option>Article_1</option>
<option>Article_2</option>
<option>Article_3</option>
<option>Article_4</option>
<option>Article_5</option>
</select>
<br /><br />
<div id="article_select">
</div>
<input type="submit" value="Envoyer"/>
</form>
</body>
</html> |
ajout_article.js :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
function ajout_input(form) {
var articles_ajoutes = document.getElementById("article_select").innerHTML;
var nom_article = document.getElementById('liste_articles').options[document.getElementById('liste_articles').selectedIndex].text;
var doublon = new RegExp(nom_article, 'g');
if (articles_ajoutes.match(doublon) == null ) {
var text_article = document.createTextNode(" "+nom_article);
var newline = document.createElement('br');
var input= document.createElement('input');
input.setAttribute("type", "checkbox");
input.setAttribute("checked", "true");
input.setAttribute("disabled", "true");
input.setAttribute("name", nom_article);
create_fiche.appendChild(input);
article_select.appendChild(input);
article_select.appendChild(text_article);
article_select.appendChild(newline);
}
} |
Les inputs sont bien créés automatiquement mais lorsque je "submit" mon formulaire, ils ne sont pas envoyés. J'ai vérifié avec un var_dump($_POST) sur ma page create_fiche.php et, effectivement, seuls les données des inputs déjà présents sur mon formulaire (non-dynamique) sont récupérés.
Quelqu'un saurait-il d'où peut venir cette erreur ?
Merci de votre aide !
PS : Je tourne sous FF 14.0.1