Ajouter un formulaire et ajouter une valeur +1 au clic
Résolu
xml74
Messages postés
186
Statut
Membre
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir. Comme expliqué dans le titre j'aimerai faire un formulaire qui ajoute un champ texte, et qui ajoute au passage une valeur dans le name.
Je m'explique:
J'ai mon premier input texte
[ ] son nom est par exemple, "episode1"
[Bouton JS] avec une fonction ajout de HTML dans un code
[ ] deuxième champ qui s'ajoute en cliquant sur "Bouton JS", ce dernier aura comme nom, "episode2". Tout ça via JS.
Voici mon script actuelle:
Et voici ma partie HTML
Merci d'avance.
Je m'explique:
J'ai mon premier input texte
[ ] son nom est par exemple, "episode1"
[Bouton JS] avec une fonction ajout de HTML dans un code
[ ] deuxième champ qui s'ajoute en cliquant sur "Bouton JS", ce dernier aura comme nom, "episode2". Tout ça via JS.
Voici mon script actuelle:
<SCRIPT LANGUAGE="JavaScript">
function addField(){
var field = "
<div id='section2' >
<label>Episode /* On ajoute +1 au chiffre de base */ </label>
</div>
<div id='section2' >
<label>Episode (+1) URL </label>
<input type='text' name='url_ep/* Ici on ajoute agalement +1 */_s1\' value='' />
</div>";
document.getElementById('fields').innerHTML += field;
}
Et voici ma partie HTML
<div id="fields">
<div id="section2">
<label>Episode 1 URL </label>
<input type="text" name="url_ep1_s1" >
</div>
</div>
<div id="section2">
<input type="button" onclick="addField()" value="Ajouter un épisode" >
</div>
Merci d'avance.
1 réponse
-
Bonjour,
Modifiedocument.getElementById('fields').innerHTML += field;
par ça :document.getElementById('fields').innerHTML = document.getElementById('fields').innerHTML + field;
NB : Je note que tu as utilisé DEUX FOIS le même ID .. il faut éviter<div id="section2">
Mais bon .. si tu veux un truc propre ... essaye ça :<div id="fields"> <div id="section2"> <label>Episode 1 URL </label> <input type="text" name="url_ep1_s1" > </div> </div> <div id="zone_bouton"> <input type="button" onclick="addField()" value="Ajouter un épisode" > </div>function addField(){ //container var zone_fields = document.getElementById('fields'); //on compte le nombre de"fields" déjà existants var nb_fields = GetChildCount('fields'); //Création des nouveaux éléments var newDiv = document.createElement("div"); newDiv.id = "section"+(nb_fields+1); var newLabel = document.createElement("label"); newLabel.innerHTML = "Episode "+(nb_fields+1)+" URL"; var newInput = document.createElement("input"); newInput.type = "text"; newInput.name = "url_ep"+(nb_fields+1)+"_s1" ; //Ajout des élements dans la zone_fields newDiv.insertBefore(newLabel,null); newDiv.insertBefore(newInput,null); zone_fields.insertBefore(newDiv,null); } function GetChildCount (container) { var container = document.getElementById(container); var childCount = 0; if ('childElementCount' in container) { childCount = container.childElementCount; }else { if (container.children) { childCount = container.children.length; } else { // Firefox before version 3.5 var child = container.firstChild; while (child) { if (child.nodeType == 1 /*Node.ELEMENT_NODE*/) { childCount++; } child = child.nextSibling; } } } return childCount; }
Cordialement,
Jordane-
Jte remercie ! Si tu veux bien m'aider d'avantage, j'aimerai faire ça, mais avec plusieurs saisons. jte laisse aller regarder ici:
http://mal.fareoh.fr/add-anime.phh
Merci d'avance- T'aider oui... le faire à ta place non !
Avec le code que je viens de te donner ... ça te donne de bonnes bases pour avancer.
Donc :
1 - La question initiale de cette discussion est traitée. Donc merci de mettre le sujet en RESOLU (lien qui se trouve sous le titre de ta question)
2 - Si as encore besoin d'aide ... essaye de coder (en te servant de mon exemple précédent) et reviens poster une question ( En mettant le code que tu auras essayé de faire et en indiquant précisément le souci rencontré )
3 - Je viens d'aller voir ton lien :
.. et voici ce qu'on obtient :
Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/wkmfc8/www/mal/add-anime.php on line 3
Fatal error: Uncaught Error: Call to undefined function mysql_close() in /var/www/wkmfc8/www/mal/add-anime.php:4 Stack trace: #0 {main} thrown in /var/www/wkmfc8/www/mal/add-anime.php on line 4
Il y a déjà un souci ... tu semble utiliser mysqli ( mysqli_query) .. alors pourquoi avec également une instruction en mysql ? (mysql_close )
Et pour corriger le souci sur mysqli_query ... il suffit de lire le manuel :https://www.php.net/manual/fr/mysqli.query.php
-
-