Méthode Plus propre ? [Résolu]

Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour à tous et à toutes,
Voilà je sais que j'ai quelques lacunes en JS alors je me permet de vous demander votre avis !
J'ai fait ce petit bout de code car j'ai besoin de  récuperer l'attribut name ainsi que la value d'input type text.
la fonction alert n'est là que pour montrer ce que j'ai récuperer.

[# '+allinput[i].value);}">test]

On m'a dit qu'il etait plus propre d'utiliser getElementsById néanmoins, chaque couple name/value sera vérifié avant une quelconque insertion en BdD donc en soit ce n'est pas réellement nécéssaire. ceci dit, j'aimerais avoir votre avis sur la question.

Merci
--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

6 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
107
Salut,

Disons que l'avantage de getElementById te renvoie un unique élément, du coup, tu peux récupèrer la valeur d'un champ particulier clairement identifié.

Avec ton code, il suffit qu'un jour tu modifie ton formulaire en y rajoutant un input (de n'importe quel type : file, button,etc.), cela impactera directement ta boucle ! Donc pas très prudent de faire comme cà !

De plus un autre conseil : evite de mettre autant de code dans un balise a : fait une fonction javascript que tu appelle sur le onclick : c'est bien plus lisible !
______________________________________
DarK Sidious
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
bonjour,

comme on parle d'insertion en base de données, il y a donc un
    langage serveur, et c'est transmis par un formulaire ? non ?

ce qui est transmis, c'est les value des champs qui ont un name.
    perso, je ne vois pas pourquoi ajouter un id en plus.


<form name="frm" action=".... >

   

   

   

   



    document.frm.t1.value à document.frm.t4.value sont parfaitement identifiés.


si on veut gérer dans une boucle, en javascript les éléments,



    on peut faire document.frm[t+index].value

    ou mettre le même name :

<form name="frm" action=".... >
   
   
   
   
    ...

et on utilise document.frm.t1[index].value
( index variant de 0 à document.frm.t1.length-1 )


coté serveur php, par exemple, reçoit un array.



ça fonctionne avec tous les navigateurs,   mais chacun ses goûts !









<hr />




Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
626
Date d'inscription
samedi 28 septembre 2002
Statut
Membre
Dernière intervention
18 mai 2009
3
Salut,
Ta proposition est tout à fait recevable mais comme l'a indiqué DARKSIDIOUS, il faut completer un peu ton script :

exemple :

function getInputs(){
    var allInputs = document.getElementsByTagName('input');
    for(var i=0; i'+allInputs[i].value);
       }
    }
}
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
j'ai dis une bétise avec l'array !     le name doit être de la forme t1[] ! avec les crochets

ch'tit exemple :

<?php
if (isset($_POST["t1"]))
{  print_r ($_POST["t1"]);   }
?>
<form name="frm" method="post">
   
   
   
   
   
</form>
<script type="text/javascript">
    for ( var n=0;n<document.frm["t1[]"].length;n++ )
    {    alert(document.frm["t1[]"][n].value);    }
</script>

voila ce que c'est d'écrire plus rapidement que réflêchir.

<hr />



Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
32
euh... il fallait lire :
     document.frm["t"+index].value



<hr />




Cordialement                Bul         [mon Site]     [M'écrire]<hr />
En général, c'est absurde de généraliser.
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Tout d'abord, merci de vous être penché sur la question

Au sujet de la proposition de Bultez qui renvoie un array je vais l'essayer car elle est plutot plaisante (je trouve). Et si je n'y arrive pas j'ajouterais une verification de type comme DARKSIDIOUS & XtremDuke l'ont proposé

Dans tous les cas ... Merci !!! Et bonne journée
--------------------------------------------------------------------------------------------------
         Ilvaut mieux poser une question et passer pour bête que le rester toutesa vie