Ajouter un formulaire et ajouter une valeur +1 au clic

Résolu/Fermé
xml74 Messages postés 161 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 14 avril 2017 - 14 avril 2017 à 22:34
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 15 avril 2017 à 01:31
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:
<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.
A voir également:

1 réponse

jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié le 14 avril 2017 à 22:55
Bonjour,

Modifie
 document.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                                                                 
0
xml74 Messages postés 161 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 14 avril 2017 1
14 avril 2017 à 22:58
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
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > xml74 Messages postés 161 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 14 avril 2017
Modifié le 14 avril 2017 à 23:34
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
0
xml74 Messages postés 161 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 14 avril 2017 1
14 avril 2017 à 23:42
Réglé ! :D
0
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > xml74 Messages postés 161 Date d'inscription samedi 29 novembre 2014 Statut Membre Dernière intervention 14 avril 2017
15 avril 2017 à 01:31
donc encore une fois je te le demande .... merci de mettre le sujet en RESOLU (en cliquant sur le lien qui se trouve sous le titre de ta question)
0