Signaler

Ajouter un formulaire et ajouter une valeur +1 au clic [Résolu]

Posez votre question xml74 161Messages postés samedi 29 novembre 2014Date d'inscription 14 avril 2017 Dernière intervention - Dernière réponse le 15 avril 2017 à 01:31 par jordane45
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.
Afficher la suite 
Utile
+0
plus moins
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                                                                 
xml74 161Messages postés samedi 29 novembre 2014Date d'inscription 14 avril 2017 Dernière intervention - 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
Répondre
jordane45 16914Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 28 avril 2017 Dernière intervention - 14 avril 2017 à 23:31
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 :http://php.net/manual/fr/mysqli.query.php
Répondre
xml74 161Messages postés samedi 29 novembre 2014Date d'inscription 14 avril 2017 Dernière intervention - 14 avril 2017 à 23:42
Réglé ! :D
Répondre
jordane45 16914Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 28 avril 2017 Dernière intervention - 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)
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !