un champs ne fonctionne pas

Eléphant du PHP | 250 Messages

30 oct. 2010, 18:07

Bonjour,

J'ai un petit soucis avec mon select name=ville, il ne fonctionne pas et le reste fonctionne parfaitement.
<form  action="forms/depot.php" method="post" name="formulaire" enctype="multipart/form-data"> 

<p class="fd2">
<select name="region" onChange="choix_a(this)"  size="1" class="texte">
<option value=-1 selected>-- régions / pays --</option>
<option value=0>Alsace</option>
<option value=1>Aquitaine</option>
<option value=2>Auvergne</option>
</select>

<select  name="departement" onChange="choix_b(this)" size="1" class="texte">
<option value=0>-- département --</option>
</select>
<select  name="ville" size="1" class="texte">
<option value=0>-- ville --</option>
</select>
f

Code : Tout sélectionner

unction choix_a ( selectbox) { var label; var value; var newopt; var flag = true; var selectarea2 = selectbox.options[ selectbox.selectedIndex ].value; switch ( selectarea2 ) { case "0": label = new Array("-- votre choix --", "Bas Rhin (67)", "Haut Rhin (68)" ); value = new Array("0","67", "68" ); break; case "1": label = new Array("-- votre choix --", "Dordogne (24)", "Gironde (33)", "Landes (40)", "Lot-et-Garonne (47)", "Pyrénées-Atlantiques (64)" ); value = new Array("0","24", "33", "40", "47", "64" ); break; default : label = new Array( "-- votre choix --"); value = new Array( "0"); break; } var selbox2 = document.formulaire.departement; var selbox3=document.formulaire.ville; for ( var i = selbox2.options.length - 1; i >= 0; i-- ) { selbox2.options[ i ] = null; } for ( var i = selbox3.options.length - 1; i >= 0; i-- ) { selbox3.options[ i ] = null; } for ( var j = 0; j < label.length; j++ ) { newopt = new Option ( label[ j ], value[ j ], false, false ); selbox2.options[ j ] = newopt; } selbox3.options.length=1; newopt=new Option('--choix--',0,false,false); selbox3.options[0]=newopt; }

Code : Tout sélectionner

function choix_b ( selectbox) { var label; var value; var newopt; var flag = true; var selectarea2 = selectbox.options[ selectbox.selectedIndex ].value; switch ( selectarea2 ) { case "67": label = new Array("-- votre choix --", "(67204) ACHENHEIM", "(67320) ADAMSWILLER" ); value = new Array("0","67204", "67320" ); break; default : label = new Array( "-- votre choix --"); value = new Array( "0"); break; } var selbox2 = document.formulaire.ville; for ( var i = selbox2.options.length - 1; i >= 0; i-- ) { selbox2.options[ i ] = null; } for(var j=0;<label.length;j++){ newopt=new Option(label[j],value[j],false,false); selbox2.options[j]=newopt; } }
Merci
Modifié en dernier par diabless6 le 30 oct. 2010, 18:16, modifié 1 fois.
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Mammouth du PHP | 19672 Messages

30 oct. 2010, 18:12

Essaye en faisant du HTML proprement écrit avec des attributs de balises entre guillemets.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

30 oct. 2010, 18:17

Même en écrivant correctement et rajouter les guillemets ça ne marche pas.
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Mammouth du PHP | 19672 Messages

30 oct. 2010, 18:31

Aucun message d'erreur ? Utilises-tu Firebug ? C'est un outil pratique pour avoir des informations détaillées.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

30 oct. 2010, 18:39

Aucun message d'erreur ? Utilises-tu Firebug ? C'est un outil pratique pour avoir des informations détaillées.
Oui c'est pratique pour le HTML mais pour les scripts, je ne sais pas trop bien l'utiliser :roll:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Mammouth du PHP | 19672 Messages

30 oct. 2010, 18:48

Il y a l'onglet console qui va afficher les erreurs de JavaScript normalement, enfin si tu actives l'onglet scripts
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

30 oct. 2010, 19:02

Ha oui c'était désactivé. Il me met ça : choix_b is not defined :shock:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Eléphant du PHP | 250 Messages

30 oct. 2010, 19:18

Yavait aussi un message XML syntaxe là :

for(var j=0; j <label.length;j++)

J'avais oublier le j, ça marche un peu mieux, mais c'est pas ça et il n' y a plus d'erreurs :roll:

C'est bizarre mon select=ville se redimensionne bien mais m'affiche rien, mon case est bon, rhoo ce javacripst #-o
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Mammouth du PHP | 19672 Messages

30 oct. 2010, 19:39

Tu devrais jeter un coup d'oeil à la première version sur ceci, c'est prévu pour deux listes, mais tu peux adapter pour trois ou davantage.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

30 oct. 2010, 20:04

Merci pour le lien, très intéressant. Mais j'utilise pas de base sql pour ça simplement parce que j'ai prévu une base pour autre chose qui utlisera intensivement le server Mysql.
Je crois que je me suis trompée dans une boucle.
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Eléphant du PHP | 250 Messages

30 oct. 2010, 21:12

Stilt! stilt! :roll:

Hihi! J'ai trouvé, ne trouvant pas l'erreur au début mais après, j'avais changé le numéro du case hihi ! ça marche :mrgreen: God save the Queen ! :twisted:

Par contre, heu!, j'ai un autre petit soucis de grande taille : 33850 villes à rentrer #-o vennant d'un csv. Alors, là j'ai un gros soucis, comment pourrais-je automatiser ça en javascript ? :? bah! avec PHP ça c'est sûr, mais c'est pas ça qui m'embête waouf :

echo 'case ".$nb.": label = new Array("-- votre choix --", "'.$villes.'" ); value = new Array("0","'.$val'." );break;';

Faudrait que j'imprime cette partie en PHP dans le javascript ? #-o

AIN 450 communes(INSEE), http://www.annuaire-mairie.fr/departement-ain.html,
AISNE 829 communes, http://www.annuaire-mairie.fr/departement-aisne.html, si fallait se fier aux statistiques faussées de l'INSEE.... :mrgreen:
etc...
Il me faut un chargement sélectif des données en fonction du département. A mon avis, je vais subdiviser ça dans un tableau et faire la lecture en Ajax :wink:
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Mammouth du PHP | 19672 Messages

30 oct. 2010, 22:14

Dans ce cas, comme je l'explique dans le tuto, ça risque d'être très exigeant en terme de mémoire, donc une solution alternative passe par AJAX, le même tuto mais pas la première version. Et encore, la version AJAX montrée pourrait être un peu simplifiée avec jQuery par exemple. Il faudrait dans ce cas importer ton csv dans une base de données.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 250 Messages

30 oct. 2010, 22:28

Oui, je pense aussi au problème de ressources et rapidité d'exécution, il faut trouver le bon compromis. Oui, je compte utiliser Jquery qui va me simplifier les choses sous peu que je comprenne le fonctionnement de l'ajax et du json #-o
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

Mammouth du PHP | 19672 Messages

31 oct. 2010, 00:49

...que je comprenne le fonctionnement de l'ajax et du json #-o
Ce n'est pas le plus compliqué :)
JSON = JavaScript Object Notation : c'est du javascript natif, et la fonction json_encode te permet de transformer à la volée un tableau PHP en JSON qui devient de ce fait directement utilisable dans ton code JS :)
Quant à l'AJAX, ça consiste simplement à utiliser une donnée récupérée lors d'un évènement, à l'envoyer vers le serveur qui doit renvoyer des données, en l'occurrence en JSON.

Réfléchis à ce déroulement des différentes étapes dans le fonctionnement et reviens avec les questions sur les problèmes que tu n'arrives pas à résoudre :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: