valeurs du formulaire vers un tableau

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
tmgbama
Messages : 3
Enregistré le : 13 nov. 2020, 12:24

valeurs du formulaire vers un tableau

Message par tmgbama » 13 nov. 2020, 12:34

Bonjour à tous, je souhaite récupérer les valeurs d'un formulaire pour les transmettre à un tableau multidimensionnel mais en retour je n'ai rien et une erreur "Uncaught TypeError: Cannot set property '0' of undefined"

Comment je pourrrais faire pour y remédier s'il vous plait ?


Code : Tout sélectionner

var tab_presta = new Array();

$("#button").click(function(){

for (var i = 0; i < document.forms["form1"].length; i++) 
{

  tab_presta[0][i] = document.forms["form1"].elements[i].value ;
  document.write(  tab_presta[0][i] +"<br>" ); 

  }
})



Avatar du membre
webmaster
Administrateur du site
Messages : 396
Enregistré le : 28 févr. 2017, 15:19

Re: valeurs du formulaire vers un tableau

Message par webmaster » 13 nov. 2020, 13:05

Bonjour

L'erreur est logique.
c'est tab_presta qui est un tableau
tab_presta[0] n'est pas un tableau, mais le premier element
Il faut changer tous les tab_presta[0] par tab_presta
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

tmgbama
Messages : 3
Enregistré le : 13 nov. 2020, 12:24

Re: valeurs du formulaire vers un tableau

Message par tmgbama » 13 nov. 2020, 16:06

Merci grandement pour votre attention. Par ailleurs malgré les modifications le problème persiste j'obtiens le message suivant et aucune valeur affiché : "Uncaught TypeError: Cannot read property 'elements' of undefined"

voici le code javascript

Code : Tout sélectionner


var tab_presta = new Array();
tab_presta[0] = [];
var longeur_tab = document.forms["form1"].elements.length;

$("#push").click(function(){

for (var i = 0; i < longeur_tab ; i++) 
{
  //tab_presta[i] = new Array(20);
  tab_presta[0][i] = document.forms["form1"].elements[i].value ;
  document.write(  tab_presta[0][i] +"<br>" ); 

  }
})


Voici le code html :

Code : Tout sélectionner

<form id="form1" name="form1">
<label for="input">Input</label>
<input type="text" id="name" name="name">
<br><br>
<label for="input1">Input1</label>
<input type="text" id="name1" name="name1">
<br><br>
<label for="textarea">textarea</label>
<textarea id="story" name="story"
          rows="5" cols="33">

</textarea>
<br><br>
<label for="textarea1">textarea1</label>
<textarea id="story1" name="story1"
          rows="5" cols="33">

</textarea>
<br><br>
<label for="pets">select</label>
<select name="pets" id="pet-select">
    <option value="">--Please choose an option--</option>
    <option value="dog">Dog</option>
    <option value="cat">Cat</option>
    <option value="hamster">Hamster</option>
    <option value="parrot">Parrot</option>
    <option value="spider">Spider</option>
    <option value="goldfish">Goldfish</option>
</select>
<br><br>
<label for="pets2">select</label>
<select name="pets2" id="pet-select2">
    <option value="">--Please choose an option--</option>
    <option value="dog">Dog</option>
    <option value="cat">Cat</option>
    <option value="hamster">Hamster</option>
    <option value="parrot">Parrot</option>
    <option value="spider">Spider</option>
    <option value="goldfish">Goldfish</option>
</select>

<button type="button" id="push">push</button>

</form>

Comment puis je faire s'il vous plait ?

Avatar du membre
webmaster
Administrateur du site
Messages : 396
Enregistré le : 28 févr. 2017, 15:19

Re: valeurs du formulaire vers un tableau

Message par webmaster » 13 nov. 2020, 17:21

Je pense que le code JS est placé avant la création du formulaire
donc le formulaire forms["form1"] n'existe pas encore.

Il faut mettre les 3 premières lignes de déclaration dans la fonction click
TJS : 20 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

tmgbama
Messages : 3
Enregistré le : 13 nov. 2020, 12:24

Re: valeurs du formulaire vers un tableau

Message par tmgbama » 13 nov. 2020, 17:51

Sincère remerciement pour votre aide je comprends mieux.

Répondre