Dynamiquement des <input> suivant la valeur(nombre) saisie dans un champs

Résolu
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009 - 24 avril 2008 à 13:24
cs_liams83 Messages postés 1 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 17 mai 2011 - 17 mai 2011 à 14:59
Bonjour,
Je rencontre des difficultes dans code ci dessous.
En
effet, je souhaite  suivant la valeur saisie dans le champ Nombre
d'&eacute;chantillon generer dynamiquement des champs
var text.
Exemple si je saisie le chiffre 3 que cela me genere 3 fois var text.
pour
cela j'ai essayer de recuperer la valeur du champs  Nombre
d'&eacute;chantillon par l'expression :
document.getElementById('idduchamp').value
Et aussi, j'ai utilise l'évènement onchange...

Tout cela ne marche pas, si vous pouvez m'aider.Merci

voila mon code:

HTML>
<HEAD>
<script language=javascript>
cpt_input = 1;
function ajout_input()
{
     var i = document.getElementById('idduchamp').value;
     for(i =1; i<=10;i++ ){
      
   
    var text = '&nbsp;&nbsp;&nbsp;&nbsp;Horizon :
&nbsp;&nbsp;&nbsp;Quantite :
';
        document.getElementById("inputs").innerHTML += text;
       
     }
}
</script>
</HEAD>

                <tr><td nowrap="nowrap">Nombre d'&eacute;chantillon:</td>
               <td></td></tr>
               <tr align="center"><td id="inputs"></td></tr>
  
</table>

 
 </HTML>

10 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
24 avril 2008 à 14:49
    je me suis totalement planté ! ====>
    effacer le innerhtml juste avant la boucle.
          document.getElementById("inputs").innerHTML= "";
          et dans le for :
          document.getElementById("inputs").innerHTML += text;

    et     ce que tu veux : je te disais : on n'a donc pas droit à l'erreur ?

    c'est assez mal venu. j'en voulais 3, je me gourre, je tape 2 : pas possible de modifier ?


    si tu y tiens à tout prix, ne fait l'ajout que si le innerHTML est vide
       ( mais c'est pas bien ! )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
3
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
24 avril 2008 à 16:37
En effet, le droit à l'erreur est un devoir !
Tu as plusieurs possiblité :
    passer le champ de saisie Nombre d'échantillons en visue seule une fois le onchange terminé (ajout de tes contrôles) et rajouter un  bouton : réinitialiser
   stoker la valeur saisie si elle est différente de la nouvelle valeur alors les champs input sont éffacés et recréer en fonction de la nouvelle valeur. Un message utilisateur est le bienvenue dans ce cas !

  Ne rien faire (solution idéale)

[o-_-o]
3
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
24 avril 2008 à 13:34
Bonjour, ais-je bien compris la question ?
Si je saisie 3 dans le champ
Nombre d'échantillon je dois donc avoir 3 fois les champs "Horizon" et "Quantité"
bah c'est relativement simple :
<HTML>
<HEAD>
<script language= javascript>
cpt_input = 1;
function ajout_input()
{
      var maxValue = document.getElementById('idduchamp').value;
     for(i =1; i<= maxValue ;i++ ){
     
        var text = '&nbsp;&nbsp;&nbsp;&nbsp;Horizon : &nbsp;&nbsp;&nbsp;Quantite :
';
        document.getElementById("inputs").innerHTML += text;
      
     }
}
</script>
</HEAD>

                <tr><td nowrap="nowrap">Nombre d'&eacute;chantillon:</td>
               <td></td></tr>
               <tr align="center"><td ></td></tr>
 
</table>

 
 </HTML>

j'ai mis en gras ce que j'ai modifié
par contre, si je saisie 3 dans le champs nombre d'échantillons puis que je saisis 1 il y aura 4 fois le doublet horizon/quantité je ne sais pas si cela est voulu ou non !

[o-_-o]
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
24 avril 2008 à 13:34
Bonjour,

Je dirai c'est normal que ça fonctionne pas

cpt_input = 1;//cette lifne sers a rien au pire tu peux juste initialiser cpt_input genre var cpt_input
function ajout_input()
{     var i document.getElementById('idduchamp').value;//c'est pas i ça c'est la valeur de cpt_input donc cpt_input document.getElementById('idduchamp').value;
     for(i =1; i<=10;i++ ){//i est la ;-) est pour i<= cpt_input

Déjà ça devrait changer pas mal de trucs...
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
0

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

Posez votre question
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
24 avril 2008 à 13:35
Messages croisés desolée

<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog

Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
24 avril 2008 à 13:52
Merci pour ces  deux  remarques qui m'ont permis d'amélirer mon code qui fonctionne.
par contre le souci reste effectivement le fait que quand je saisie 3 dans le champs nombre d'échantillons puis que je saisis 1 il y aura 4 fois le doublet horizon/quantité.

J'aimerai qu'on n' ai pas la possiblité  de faire un deuxième rajout des
au fait que l'evenement onchange doit être actif qu'une seule fois.

Merci
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
24 avril 2008 à 14:08
>>'aimerai qu'on n' ai pas la possiblité  de faire un deuxième rajout des
>>au fait que l'evenement onchange doit être actif qu'une seule fois.
    donc, pas le droit à l'erreur ?
    document.getElementById("inputs").innerHTML= text;<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
24 avril 2008 à 14:14
Merci pour tout.
C'est exactement ce qu'il me falait.
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
24 avril 2008 à 14:29
document.getElementById("inputs").innerHTML= text;
Ne permet pas de resoudre le problème,  on doit pouvoir generer autant d' que la valeur saisie dans le champ Nombre d'échantillon et qu'après une saisie valide que l'évènement onchange  ne soit plus actif..
0
cs_liams83 Messages postés 1 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 17 mai 2011
17 mai 2011 à 14:59
bonjour,

J'interviens un peu tard mais si quelqu'un pouvez éclairer ma lanterne !!!

En effet, j'ai mis les imputs généré dans un formulaire mais je n'arrive pas les récupérer sur une autre pages : (j'aimerais pour commencé juste les affichés)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
<script language=javascript>
cpt_input = 1;
function ajout_input()
{
var maxValue = document.getElementById('nbchamp').value;
for(i =1; i<=maxValue;i++ )
{
var text = 'Nom de l\'article :    Quantite : 

<hr align="center" width="50%" color="midnightblue" size="4">';
document.getElementById("inputs").innerHTML += text;
}
}
</script>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link  href="mes_styles.css" rel="stylesheet" type="text/css" media="screen"/>
    </head>

    
        <form method="POST" action="creatmanif.php">
        


               <tr>
<td nowrap="nowrap">Nombre d'article necessaire:</td>
<td></td></tr>

<tr>
<td ></td>
</tr>
 
</table>
<center></center>


         </form>
 
[menu.php Retour menu]




</html>


dans la page qui reçoit :
<?php
session_start();
include ("connection.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Application de gestion des articles et des manifestations</title>
        <link  href="mes_styles.css" rel="stylesheet" type="text/css" media="screen"/>
    </head>
    
        Nouvelle manifestation


        <?php			
$nbart=$_POST['nbchamp'];
for ($i=1;$i<$nbart;$i++)
{
echo $_POST['libarticle'] ;echo '
';
}
?>
<h3>[visumanif.php consulter les manifestation]

        [menu.php Retour menu]


    
</html>

Si vous pouviez m'aider sa serai cool.

Merci.
0
Rejoignez-nous