JS prend t'il en compte les []

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : JS prend t'il en compte les []

par naholyr » 31 juil. 2006, 23:09

Ton second code était presque correct, à ceci près qu'il ne respecte pas la syntaxe JSON des objets Javascript.

Quand on souhaite utiliser une alternative à objet.propriété (pour des raisons de nom bizarroïde par exemple ;)) on n'écrit pas comme tu l'as fait objet.('propriété') mais objet['propriété']

Ainsi ton second code, corrigé :
//
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris.selectedIndex; 
var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){ 
case "Long totale aérien 7118 Cuivre":document.prestations_tvd['texter[1]'].value="TA106";break; 
case "Déroulage câble sans porteur":document.prestations_tvd['texter[1]'].value="TA107";break; 
case "Equipement de pylône":document.prestations_tvd['texter[1]'].value="TA111";break; 
case "Pose façade":document.prestations_tvd['texter[1]'].value="TA241";break; 
case "Jonction":document.prestations_tvd['texter[1]'].value="TA241";break; 
case "Transfert power injecteur":document.prestations_tvd['texter[1]'].value="TA455";break; 
case "Placement power injecteur":document.prestations_tvd['texter[1]'].value="TA454";break; 
case "Connecteur":document.prestations_tvd['texter[1]'].value="TA241";break; 
case "Démontage":document.prestations_tvd['texter[1]'].value="TA24";break; 
case "Démontage appareil":document.prestations_tvd['texter[1]'].value="TA49";break; 
default:document.prestations_tvd['texter[1]'].value="Un choix svp.";break; 
} 
} 

par dunbar » 31 juil. 2006, 22:57

Une ligne en exemple :
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.('texter[1]').value="TA106";break;
essaie avec :
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter[1].value="TA106";break;
en nommant tous les champs name="texter" sans [].
Merci pour l'aide, j'ai finalement trouvé le pourquoi de l'erreur.

par Truc » 31 juil. 2006, 18:42

Une ligne en exemple :
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.('texter[1]').value="TA106";break;
essaie avec :
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.texter[1].value="TA106";break;
en nommant tous les champs name="texter" sans [].

par dunbar » 31 juil. 2006, 18:29

Tu étales beaucoup trop ton sujet... on s'y perd et ne comprend plus rien. Tu devrais reprendre clairement (en te disant que nous ne connaissons ni ton application ni son but).

On admet que tu as beaucoup de champs texte, tu leur donne le même attribut name sans [] (name="txt").

Tu pourras boucler dessus:
function lecture()
{
  obj = document.nom_formulaire.txt;
  nb = obj.length;	
   for(i=0;i<nb;i++)	
     alert(obj[i].value);
}
toutes les valeurs des champs devraient s'afficher... après je n'ai absolument pas compris ce que tu veux en faire :?
Se que je veux est finalement trés simple :D et cela fonctionnais à merveille avant que je ne renomme mes champs pour avoir plus facile avec mes insert.
Je veux simplement que la définition de la valeur du menu deroulant s'inscrive dans un input.
c'est tout. :lol:Un détail quand même il y à 51 Menus, le form est visible ICI e là tu remarquera que les menu fonctionne SAUF le premier select de chaque menu :?:

par dunbar » 31 juil. 2006, 17:53

Oui tu as raison, je vais reprendre clairement

par Truc » 31 juil. 2006, 17:43

Tu étales beaucoup trop ton sujet... on s'y perd et ne comprend plus rien. Tu devrais reprendre clairement (en te disant que nous ne connaissons ni ton application ni son but).

On admet que tu as beaucoup de champs texte, tu leur donne le même attribut name sans [] (name="txt").

Tu pourras boucler dessus:
function lecture()
{
  obj = document.nom_formulaire.txt;
  nb = obj.length;	
   for(i=0;i<nb;i++)	
     alert(obj[i].value);
}
toutes les valeurs des champs devraient s'afficher... après je n'ai absolument pas compris ce que tu veux en faire :?

par dunbar » 31 juil. 2006, 14:46

Pourquoi ?
Parce que 8-[

Tu as utilisé un getElementById donc un traitement avec les id dans le code du calcul.
Oui ok alors en gros ma solution la plus propre est de refaire mes menu en PHP, d'ou une autre question mais je vais la poser dans le bon FORUM sinon je vais me faire eng...... :wink:
A tout de suite

par Truc » 31 juil. 2006, 14:12

Pourquoi ?
Parce que 8-[

Tu as utilisé un getElementById donc un traitement avec les id dans le code du calcul.

par Truc » 31 juil. 2006, 14:08

Tu peux construire une liste select dynamiquement cachée (style="dispaly:none") :ordi:

tu ajoutes dans le champ de type texte ce que tu veux et en même temps tu ajoutes une option dans la liste cachée pour ensuite la traiter comme un tableau. :-k

par dunbar » 31 juil. 2006, 13:51

Je te croie, mais je ne comprend pas pourquoi cela fonctionne pour la partie calcul et pas la partie menu.
function recalculer()
{
//déclarons des variables temporaires
var val1=0;
var val2=0;
var val3=0;
var val4=0;
var val5=0;
var val6=0;
var val7=0;
var val8=0;
var val9=0;
var val10=0;
//ligne 2


// et une variable pour le total
var total1=0;
val1=Number(document.getElementById('p[1]').value);
val2=Number(document.getElementById('p[2]').value);
val3=Number(document.getElementById('p[3]').value);
val4=Number(document.getElementById('p[4]').value);
val5=Number(document.getElementById('p[5]').value);
val6=Number(document.getElementById('p[6]').value);
val7=Number(document.getElementById('p[7]').value);
val8=Number(document.getElementById('p[8]').value);
val9=Number(document.getElementById('p[9]').value);
val10=Number(document.getElementById('p[10]').value);
//ligne2

//calculons le total
total1=val1+val2+val3+val4+val5+val6+val7+val8+val9+val10;

//plaçons-le dans le chmaps resultat
document.getElementById('total[1]').value=total1;

}
cette function fonctionne
mais pas celle ci
function menu_ld(){
var indice_selectionne=document.prestations_tvd.compris.selectedIndex;
var chango=document.prestations_tvd.compris.options[indice_selectionne].value; switch (chango){
case "Long totale aérien 7118 Cuivre":document.prestations_tvd.('texter[1]').value="TA106";break;
case "Déroulage câble sans porteur":document.prestations_tvd.('texter[1]').value="TA107";break;
case "Equipement de pylône":document.prestations_tvd.('texter[1]').value="TA111";break;
case "Pose façade":document.prestations_tvd.('texter[1]').value="TA241";break;
case "Jonction":document.prestations_tvd.('texter[1]').value="TA241";break;
case "Transfert power injecteur":document.prestations_tvd.('texter[1]').value="TA455";break;
case "Placement power injecteur":document.prestations_tvd.('texter[1]').value="TA454";break;
case "Connecteur":document.prestations_tvd.('texter[1]').value="TA241";break;
case "Démontage":document.prestations_tvd.('texter[1]').value="TA24";break;
case "Démontage appareil":document.prestations_tvd.('texter[1]').value="TA49";break;
default:document.prestations_tvd.('texter[1]').value="Un choix svp.";break;
}
}
Pourquoi ?

par Truc » 31 juil. 2006, 13:48

Tout dépend du cas... pour les boutons radio tu va retrouver cette configuration "tableau" mais pas sur un champ texte ou cases à cocher.

JS prend t'il en compte les []

par dunbar » 31 juil. 2006, 13:37

Bonjour,
Pourriez-vous me dire si JavaScript reconnais les caractères [] ???
Je pense que non mais j'aimerais une confirmation

Exemple un champs nommé champ1 ok cela fonctionne le même champ nommé champ[1] j'ai une erreur

Merci