Ajouter un formulaire et ajouter une valeur +1 au clic

Résolu
xml74 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   - 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 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
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   Statut Membre Dernière intervention   1
 
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 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745 > xml74 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   1
 
Réglé ! :D
0
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745 > xml74 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention  
 
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