Recupération des valeur s de champs de saisie generer par js

Signaler
Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009
-
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
-
Bonjour,
J'avais déjà eu des échanges au sujet de mon code ci dessous.
par contre, je n'ai aucune idée de l'algorithme pour recuperer la valeur que l'utilisateur à saisie dans les champs input qui ont été generer dans le but de faire des insertion dans ma base de données.

<HTML>
<HEAD>
<script language=javascript>
 //var cpt_input ;
function ajout_input()
{
     var maxValue = document.getElementById('idduchamp').value;//L'évènement onchange ne se ferra qu'une seule fois par demande.
     document.getElementById("inputs").innerHTML = "";
     for(i =1;i<=maxValue;i++ ){
           var text = '<tr><td nowrap="nowrap">Horizon :</td><td></td>&nbsp;<td>Quantit&eacute; : </td></tr>
';
        document.getElementById("inputs").innerHTML += text;
     }
}
</script>
</HEAD>
   
<tr><td nowrap="nowrap">&nbsp;&nbsp;&nbsp;&nbsp;Nombre d'&eacute;chantillon:</td>
               <td></td></tr>
               <tr><td></td><td></td></tr>
</table>

Merci  si vous avez une piste pour moi.

35 réponses

Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Bonjour,

Dans text tu as les mêmes nom et les mêmes id pour chaque input que tu vas créer il font donc changer pour ça donne la valeur en fonction du i par exemple pour avoir un nom/id unique.

et après tu pourra facilement les récuperer (avec les expression reguliere tu récupere tout ce qui commence par horizon par exemple)

>>Merci  si vous avez une piste pour moi.
De rien ;-)

<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)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

>>    name="horizon'+ maxValue + '"id="test'+ maxValue
    un ID doit être unique dans une page !
          comme ici tu crée le même c'est inexploitable.
    pour le name
       document.name_du_formulaire.name_du_text[indice].value
    et comme name_du_text est "variable", tu te compliques la vie....
   
    fait     ...name="toto" id="tata'+i+'"...

    et tu pourras utiliser
       document.name_formulaire.toto[de 0 à document.name_formulaire.toto.length-1].value
       ou
       document.getElementById("tata"+indice].value

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Bonjour bul,

Encore des messages croisés ;-)

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

Tu veux dire que je dois faire :
var i;
for(i =1;i<=maxValue;i++ ){
           var text =
'<tr><td nowrap="nowrap">Horizon
:</td><td></td>&nbsp;<td>Quantit&eacute; : </td></tr>
';
}
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
salut maelob ! comme nul ne rafraîchit les pages.... ça ne peut qu'arriver.
daris : non, je n'ai pas dit cela.
    j'ai proposé de mettre le même name et un id différent qui s'incrémente
    en plus ton i c'est du string, pas une valuer.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Non pas du tout ^^

Dans ta boucle for tu as déjà un i il faut le réutiliser

donc quelque chose comme
     for(i = 1;i<=maxValue;i++ ){
           var text =
'<tr><td nowrap="nowrap">Horizon
:</td><td>i
+'"></td>&nbsp;<td>Quantit&eacute; : </td></tr>
';
        document.getElementById("inputs").innerHTML += text;
     }

D'ailleur y'a un faute la c'est pas name="tst " '+i+' mais
  name ="tst'+i+'"

<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)
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Bul je fais la même chose ^^

<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)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
on est presque synchrone maelob.
j'urais simplement mis le même name.... sans i, qui me semble inutile
    et moins simplement  exploitable après
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
Ben daris veut recuperer les champs pour les entrer dans sa bd j'ai suposé (avec ma boule de cristal :-p) qu'il allait utiliser un language coté serveur donc qu'il fallait un name different.

Mais bon ma boule de cristal m'a peut être menti :-D il veut peut être le faire en ajax et dans ce cas juste l'id different c'est bon

<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)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>qu'il allait utiliser un language coté serveur donc qu'il fallait un name different.
    je n'avais pas pensé à cela ! tu as sûrement raison
    pour plus de simplicité coté serveur... mettre le même name     ;o))    avec des crochets !
    name="toto[]"   comme ça sur le serveur on récupère un array.
    coté javascript on utilise document.name_formulaire["toto[]"][indice].value

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009

Pour la recuperation des valeur de variable je fais: 
par exemple var horizon = document.getElementById("test"+i].value ;

mais comment je peux faire la transition dans php.
Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009

Le problème c'est que je ne connais rien en ajax et mois je developpe en php uniquement.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
en php on transmet les value des éléments qui ont un name.
c'est pour ça que je te proposais de mettre name="toto[]"

ch'tit exemple ( appel même page )

<form method="post">
   
   
   
<?php if ( isset($_POST['t2']) )
        {    print_r($_POST['t2']);    }    ?>
   

</form>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ajax ?
    et qu'est-ce que c'est qu'ajax sinon l'appel à du php ?
          et 10 lignes en javascript ?
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
49
Date d'inscription
lundi 9 janvier 2006
Statut
Membre
Dernière intervention
17 février 2009

Il faut peut être que je commence apprendre ajax mais pour le moment je n'en sais rien.bref

pour quoi dans ton code tu as mis:
 
ca devrait pas être: ?
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
  ah ben non !    essaye tu verras....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
daris,

La notation que t'as donné bul c'est pour récuperer les input sous forme de tableau.
Quand tu validedera le formulaire tu obtiendra un tableau d'horizon où $_POST/GET['horizon'][0] sera le premier horizon.

<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)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
exact maelob
remarque que comme Daris veut faire ça avec ajax ( ? est-ce nécessaire ? )
    ça va lui être difficile d'utiliser un formulaire !       ;o)
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
943
Date d'inscription
mardi 14 novembre 2006
Statut
Membre
Dernière intervention
7 août 2009
3
>>remarque que comme Daris veut faire ça avec ajax ( ? est-ce nécessaire ? )
Non je ne pense pas

>>ça va lui être difficile d'utiliser un formulaire !       ;o)
Seule l'avenir nous le dira mais j'ai un peu peur aussi j'avoue

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

bultez,
En resumer, si j'ai bien compris je dois faire :

for(i =1;i<=maxValue;i++ ){
           var text = '<tr><td nowrap="nowrap">Horizon :</td><td></td>&nbsp;<td>Quantit&eacute; : </td></tr>
';
        document.getElementById("inputs").innerHTML += text;
     }

<?php
$tab= array();
$tab = $_POST['t2'];
print_r($tab);
?>