Dynamiquement des <input> suivant la valeur(nombre) saisie dans un champs [Résolu]

Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009
- - Dernière réponse : 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>
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
3
Merci
    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]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 136 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_bultez
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
3
3
Merci
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]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 136 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Zobibol
Messages postés
469
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
20 février 2017
3
0
Merci
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]
Commenter la réponse de Zobibol
Messages postés
944
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
0
Merci
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)
Commenter la réponse de maelob
Messages postés
944
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
0
Merci
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)
Commenter la réponse de maelob
Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009
0
Merci
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
Commenter la réponse de cs_daris
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
26
0
Merci
>>'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]
Commenter la réponse de cs_bultez
Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009
0
Merci
Merci pour tout.
C'est exactement ce qu'il me falait.
Commenter la réponse de cs_daris
Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009
0
Merci
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..
Commenter la réponse de cs_daris
Messages postés
1
Date d'inscription
mardi 17 mai 2011
Statut
Membre
Dernière intervention
17 mai 2011
0
Merci
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.
Commenter la réponse de cs_liams83