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

cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009 - 25 avril 2008 à 10:51
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 - 25 avril 2008 à 14:28
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

maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
25 avril 2008 à 11:13
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)
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 11:13
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]
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
25 avril 2008 à 11:16
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)
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
25 avril 2008 à 11:20
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>
';
}
0

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

Posez votre question
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 11:28
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]
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
25 avril 2008 à 11:29
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)
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
25 avril 2008 à 11:31
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)
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 11:35
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]
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
25 avril 2008 à 11:40
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)
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 11:44
>>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]
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
25 avril 2008 à 11:49
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.
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
25 avril 2008 à 11:54
Le problème c'est que je ne connais rien en ajax et mois je developpe en php uniquement.
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 11:55
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]
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 11:56
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]
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
25 avril 2008 à 12:02
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: ?
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 12:07
  ah ben non !    essaye tu verras....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
25 avril 2008 à 12:32
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)
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
25 avril 2008 à 12:40
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]
0
maelob Messages postés 943 Date d'inscription mardi 14 novembre 2006 Statut Membre Dernière intervention 7 août 2009 3
25 avril 2008 à 12:46
>>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)
0
cs_daris Messages postés 49 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 17 février 2009
25 avril 2008 à 13:06
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);
?>
0
Rejoignez-nous