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

Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 16 août 2007 à 20:01
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 - 17 août 2007 à 14:11
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

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
16 août 2007 à 20:06
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

à+
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
17 août 2007 à 12:24
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
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 août 2007 à 12:57
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.
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
17 août 2007 à 14:08
Jarod_Delaware
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
17 août 2007 à 14:08
Jarod_Delaware
0
Jarod1980 Messages postés 273 Date d'inscription samedi 5 juillet 2003 Statut Membre Dernière intervention 31 mars 2015 2
17 août 2007 à 14:11
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
0
Rejoignez-nous