un champs ne fonctionne pas

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 : un champs ne fonctionne pas

Re: un champs ne fonctionne pas

par Cyrano » 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 :)

Re: un champs ne fonctionne pas

par diabless6 » 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

Re: un champs ne fonctionne pas

par Cyrano » 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.

Re: un champs ne fonctionne pas

par diabless6 » 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:

Re: un champs ne fonctionne pas

par diabless6 » 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.

Re: un champs ne fonctionne pas

par Cyrano » 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.

Re: un champs ne fonctionne pas

par diabless6 » 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

Re: un champs ne fonctionne pas

par diabless6 » 30 oct. 2010, 19:02

Ha oui c'était désactivé. Il me met ça : choix_b is not defined :shock:

Re: un champs ne fonctionne pas

par Cyrano » 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

Re: un champs ne fonctionne pas

par diabless6 » 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:

Re: un champs ne fonctionne pas

par Cyrano » 30 oct. 2010, 18:31

Aucun message d'erreur ? Utilises-tu Firebug ? C'est un outil pratique pour avoir des informations détaillées.

Re: un champs ne fonctionne pas

par diabless6 » 30 oct. 2010, 18:17

Même en écrivant correctement et rajouter les guillemets ça ne marche pas.

Re: un champs ne fonctionne pas

par Cyrano » 30 oct. 2010, 18:12

Essaye en faisant du HTML proprement écrit avec des attributs de balises entre guillemets.

un champs ne fonctionne pas

par diabless6 » 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