Comment les valeurs d'un champ input créé dynamiquement

Signaler
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
-
Jarod1980
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
-
Bonjour,
Je voudrais donner la possibilité à l'utilisateur d'insérer des champs input type text dans la page WEB à partir d'un bouton. Le problème, c'est que quand j'ajoute un nouveau champ input type text dans la page, les précédents champ input text qui contiennent du texte sont remis à zéro. Je voudrais si c'est possible de garder ces valeurs lors de l'insertion de nouveaux champ input text dans ma page.
Ci dessous mon code :

<ol><li class="ligne_off"><?php
</li><li class="ligne_off">// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire  </li><li class="ligne_off">if(isset($_POST['submit'])&&$_POST['submit']=="Envoyer"){ </li><li class="ligne_off">      // on affiche le nombre de champs du formulaire </li><li class="ligne_off">      echo'Nombre de champs : '.$_POST['nb_champs'].'
'; </li><li class="ligne_off"> </li><li class="ligne_off">      // on affiche la valeur des champs du formulaire </li><li class="ligne_off">      for($i=1;$i<=$_POST['nb_champs'];$i++){ </li><li class="ligne_off">            $dynamique='champs_'.$i; </li><li class="ligne_off">            $value=$_POST[$dynamique]; </li><li class="ligne_off">            echo'Valeur du champ '.$i.' : '.$value.'
'; </li><li class="ligne_off">      }  </li><li class="ligne_off">}  </li><li class="ligne_off"> </li><li class="ligne_off">// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire  </li><li class="ligne_off">else{ </li><li class="ligne_off">      // on défini le nombre initial de champs </li><li class="ligne_off">      if(!isset($_POST['nb_champs'])){ </li><li class="ligne_off">            $_POST['nb_champs']=1; </li><li class="ligne_off">      } </li><li class="ligne_off">      // si la personne clic sur "un champs en +", on ajoute un champs </li><li class="ligne_off">      if(isset($_POST['submit'])&&$_POST['submit']=="Un champs en +"){ </li><li class="ligne_off">            $_POST['nb_champs']++; </li><li class="ligne_off">      } </li><li class="ligne_off"> </li><li class="ligne_off">      // on affiche le formulaire </li><li class="ligne_off">      echo'<FORM METHOD="post">'; </li><li class="ligne_off">      // on place un champ caché contenant un entier ayant comme valeur le nombre de champs du formulaire </li><li class="ligne_off">      echo'.$_POST['nb_champs'].'">'; </li><li class="ligne_off"> </li><li class="ligne_off">      // on affiche tous les champs du formulaire </li><li class="ligne_off">      for($i=1;$i<=$_POST['nb_champs'];$i++){ </li><li class="ligne_off">            echo'.$i.'">
'; </li><li class="ligne_off">      } </li><li class="ligne_off"> </li><li class="ligne_off">      // on place un bouton permettant de rajouter un champs </li><li class="ligne_off">      echo'
'; </li><li class="ligne_off">      // on place un bouton permettant de soumettre le formulaire </li><li class="ligne_off">      echo''; </li><li class="ligne_off">      echo'</FORM>';  </li><li class="ligne_off">}  </li><li class="ligne_off">?>
</li></ol>

Jarod_Delaware

6 réponses

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Salut,

cherche comment insérer dynamiquement des champs avec javascript, pas php, ce sera beaucoup mieux.

au pif : http://www.editeurjavascript.com/scripts/scripts_formulaires_3_653.php

à+
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
1
Salut,


Merci pour ta réponse. J'ai integré un script javascript dans ma source pour générer dynamiquement les champs input. Là pas de soucis, par contre quand s'insère dans ma bdd les valeurs j'ai des champs vides.


<script language=javascript>
cpt_input = 1;


function ajout_input()
{
cpt_input++;
//var text = '';


var text = '&nbsp;
';


document.getElementById("inputs").innerHTML += text;


}
</script>

<?php
// si l'utilisateur soumet le formulaire on affiche la valeur de tous les champs du formulaire 
if (isset($_POST['submit']) && $_POST['submit'] == "Envoyer"){
      // on affiche le nombre de champs du formulaire
      //echo 'Nombre de champs : '.$_POST['nb_champs'].'
';
 
      // on affiche la valeur des champs du formulaire
      for ($i=1; $i<=$_POST['nb_champs']; $i++){
            $dynamique = 'champs_'.$i;
            $dynamique2 = 'champs1_'.$i;   
            $value = $_POST[$dynamique];
            $value2 = $_POST[$dynamique2];
            echo 'Valeur du champ '.$i.' : '.$value.'&nbsp;
'.$value2;
   $req = "INSERT INTO Calendar (jours, sortie) VALUES('$value','$value2')";
mysql_query($req);
      } 

 
// sinon on affiche le formulaire avec la possibilité d'ajout des champs au formulaire 
else{
      // on défini le nombre initial de champs
      if (!isset($_POST['nb_champs'])){
            $_POST['nb_champs'] = 1;
      }
      // si la personne clic sur "un champs en +", on ajoute un champs
      if (isset($_POST['submit']) && $_POST['submit'] == "Un champs en +"){
            $_POST['nb_champs']++;
      }
 
      // on affiche le formulaire
      echo '<FORM name="frm" METHOD="post">';
   echo '

';
      echo '';
   echo '';
 
      // on affiche tous les champs du formulaire
     // for ($i=1; $i<=$_POST['nb_champs']; $i++){
            //echo '&nbsp;
';
      //}
 
      // on place un bouton permettant de rajouter un champs
      //echo '
';
      // on place un bouton permettant de soumettre le formulaire
      echo '';
      echo '</FORM>'; 

mysql_close();
?>

Jarod_Delaware
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Tu as mal écrit

{
cpt_input++;  var
text = '&nbsp;
';

vérifie la source de ta page de départ, ya pas de secret, c'est rien d'autre qu'un formulaire.
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
1
Jarod_Delaware
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
1
Jarod_Delaware
Messages postés
273
Date d'inscription
samedi 5 juillet 2003
Statut
Membre
Dernière intervention
31 mars 2015
1
J'ai encore IE qui foire qd je psote des messages. Bref, au sinon merci pour ton aide, c'est super ça marche. Par contre, ça n'insère toujours pas dans la bdd même pas des champs vides.
Mais bon, lorsque je fais un alert pour voir la valeur du champ1 ça me retourne la valeur marquée. Il doit certainement y avoir une erreur dans mon php.

Jarod_Delaware