begin process at 2012 05 29 15:48:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

PHP + MySQL + JQuery et... Je deviens fou !


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PHP + MySQL + JQuery et... Je deviens fou !

vendredi 30 septembre 2011 à 09:06:38 | PHP + MySQL + JQuery et... Je deviens fou !

BBFUNK01

Hello,

alors voilà : je suis en train de faire un site avec membres, et je rélaise un moteur de recherche pour afficher différents membres suivant des critères divers tels que le pays, la région, et le département.

Pour ce faire j'ai une base de données MySQL où sont stockées les infos ; les données "pays", "region", et "dept" sont de type INT.

J'ai donc 4 pays : france, belgique, suisse, et luxembourg. Seule la france permet une recherche par région et département.

Le problème :

- Lorsque j'effectue une recherche par pays, et que je recherche soit en belgique, suisse, ou luxembourg, la requête fonctionne et les membres recherchés s'affichent correctement sur ma page de résultats.

- Mais lorsque j'effectue une recherche sur la france, et que par conséquent je sélectionne une région et un département, la requête ne me renvoie aucun résultat -> les lignes de ma BDD ne matchent jamais !

Les hypothèses :

- J'utilise donc 3 technologies pour faire fonctionner mon moteur de recherche : PHP, MySQL, et JQuery.
Pour sélectionner le pays j'ai une liste déroulante statique (<SELECT></SELECT>) dans mon formulaire.
Lorsque c'est la France qui est sélectionnée, j'affiche dynamiquement une nouvelle liste déroulante via JQuery, puis lorsque la région est à son tour sélectionnée, j'en affiche une troisième toujours via JQuery.

Une partie de mon code JQuery pour afficher ces listes déroulantes :

Code Javascript :
$(document).ready(function() {
	
	var longueurListe = "";

	$("#maRegion").hide();
	$("#listeRegion").hide();

	$("#monDpt").hide();
	$("#listeDpt").hide();

	$("#listePays").change(function() {
	if ( $("#listePays").val() == "0"){
		$("#listeRegion").hide(200);
		$("#maRegion").hide(200);
		$("#listeRegion").get(0).selectedIndex = 0;
		$("#monDpt").hide(200);
		$("#listeDpt").hide(200);
		$("#listeDpt").get(0).selectedIndex = 0;
	}else if ( $("#listePays").val() == "1"){
		$("#listeRegion").show(200);
		$("#maRegion").show(200);
	}else if ( $("#listePays").val() == "2"){
		$("#listeRegion").hide(200);
		$("#maRegion").hide(200);
		$("#listeRegion").get(0).selectedIndex = 0;
		$("#monDpt").hide(200);
		$("#listeDpt").hide(200);
		$("#listeDpt").get(0).selectedIndex = 0;
	}else if ( $("#listePays").val() == "3"){
		$("#listeRegion").hide(200);
		$("#maRegion").hide(200);
		$("#listeRegion").get(0).selectedIndex = 0;
		$("#monDpt").hide(200);
		$("#listeDpt").hide(200);
		$("#listeDpt").get(0).selectedIndex = 0;
	}else if ( $("#listePays").val() == "4"){
		$("#listeRegion").hide(200);
		$("#maRegion").hide(200);
		$("#listeRegion").get(0).selectedIndex = 0;
		$("#monDpt").hide(200);
		$("#listeDpt").hide(200);
		$("#listeDpt").get(0).selectedIndex = 0;
	}
	});
	
	$("#listeRegion").change(function() {
	if ( $("#listeRegion").val() == "0"){
		$("#listeDpt").hide(200);
		$("#monDpt").hide(200);
		$('#listeDpt').children().remove().end().append('<option selected value="0">critère sans importance</option>');
	}else if ( $("#listeRegion").val() == "1"){
		$("#listeDpt").show(200);
		$("#monDpt").show(200);
		$('#listeDpt').children().remove().end().append('<option selected value="0">critère sans importance</option>');
		$("#listeDpt").append("<option value='67'>BAS RHIN - 67</option>");
		$("#listeDpt").append("<option value='68'>BAS RHIN - 68</option>");
	}else if ( $("#listeRegion").val() == "2"){
		$("#listeDpt").show(200);
		$("#monDpt").show(200);
		$('#listeDpt').children().remove().end().append('<option selected value="0">critère sans importance</option>');
		$("#listeDpt").append("<option value='24'>DORDOGNE - 24</option>");
		$("#listeDpt").append("<option value='33'>GIRONDE - 33</option>");
		$("#listeDpt").append("<option value='40'>LANDES - 40</option>");
		$("#listeDpt").append("<option value='47'>LOT ET GARONNE - 47</option>");
		$("#listeDpt").append("<option value='64'>PYRENEES ATLANTIQUES - 64</option>");
	}else if ( $("#listeRegion").val() == "3"){
...etc...


J'envoie donc les données de mon formulaire avec la méthode POST, et je compare avec les données de ma base. Mais après x tests, il m'est impossible de faire coïncider les données "region" et "dpt" envoyées avec les données de ma bdd, donc je ne comprends pas... J'ai essayé plein de choses :
- j'ai tenté tous les encodages/décodages possibles et inimaginables mais sans succès.
- j'ai tenté de changer le type INT de ces données dans ma base en "VARCHAR" mais sans succès.
- j'ai essayé de comparer mes données avec stripos mais sans succès.
- Partant dans l'hypothèse que ce serait peut-être un problème dû à un conflit de type, j'ai essayé de biaiser en soustrayant les données envoyées aux données stockées, et si le résultat est égal à 0 -> ça matche. Le résultat est bien égal à 0 pour les données sensées matcher... Mais ça ne matche pas.
- et encore bien d'autres tests....

Je précise que j'ai effectué ces tests dans l'environnement du site (donc avec le formulaire dynamique) et également dans une page "test" où les données à chercher sont tapées en dur dans la page, et ... Sur la page "test" à chaque fois ça matche lorsque ça le doit...

La conclusion que j'en tire :

Etant donné que j'ai d'autres données INT dans ma base qui sont comparées à d'autres données envoyées par le formulaire, et que ces données ne posent pas de problème, j'en déduis que ce sont mes deux listes déroulantes dynamiques qui sèment le trouble (du moins je ne vois que ça...).
Le problème : et bien je ne sais comment le résoudre le problème justement , donc j'en appelle à vos compétences si parmi vous quelqu'un a une idée.

D'avance mille mercis pour vos réponses


BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
vendredi 30 septembre 2011 à 13:09:38 | Re : PHP + MySQL + JQuery et... Je deviens fou !

Romano58

Bonjour,

C'est pour quand le 4em topic a ce sujet?


Romain
vendredi 30 septembre 2011 à 14:10:45 | Re : PHP + MySQL + JQuery et... Je deviens fou !

BBFUNK01

Hello Romano58,

peux-tu développer stp ? Je n'ai pas trouvé de topic traitant de mon problème, aurais-tu le lein d'un des topics en question stp ?

Thks

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
vendredi 30 septembre 2011 à 14:49:53 | Re : PHP + MySQL + JQuery et... Je deviens fou !

galled

Personnellement j'en ai trouvé 3 qui traite exactement du même sujet.

Le problème vient surement de ta requête vérifie si dans ton php elle retourne réellement quelque chose ou si c'est vide. Si c'est le cas c'est surement que tu passe pas les bonnes variables dans ta requête.
vendredi 30 septembre 2011 à 15:10:27 | Re : PHP + MySQL + JQuery et... Je deviens fou !

BBFUNK01

Hello Galled,

bon et bien je vais chercher plus précisément où se trouvent ces posts. Quoi qu'il en soit ma requête retourne bien dans mon PHP des résultats. LE fait est que ça ne matche pas, donc il y a évidemment une coquille mais je n'ai pas encore trouvé où.

A plus ;),

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
vendredi 30 septembre 2011 à 16:19:13 | Re : PHP + MySQL + JQuery et... Je deviens fou !

Romano58

@BBFUNK01: Moi développez?

1: http://www.javascriptfr.com/forum/sujet-PHP-MYSQL-JQUERY-JE-DEVIENS-FOU_1549082.aspx
2: http://www.phpcs.com/forum/sujet-PHP-MYSQL-JQUERY-JE-ARRACHE-CHEVEUX_1549081.aspx
3: http://www.sqlfr.com/forum/sujet-PHP-MYSQL-JQUERY-PROBLEME-TRES-TRES-EPINEUX_1549080.aspx

Donc au quatriéme tu t'arrachera les poils du cul?




Romain
vendredi 30 septembre 2011 à 17:18:42 | Re : PHP + MySQL + JQuery et... Je deviens fou !

BBFUNK01

héhé,

non ceux-ci je vais essayer de les garder. Certes j'y suis allé franchement car ne voyant véritablement pas de solution à mon souci j'ai jugé bon de poster sur chacun des forums correspondant à chaque langage que j'utilise pour faire l'appli.

BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono
vendredi 30 septembre 2011 à 17:26:03 | Re : PHP + MySQL + JQuery et... Je deviens fou !

galled

Alors c'est soit ta requête qui n'est pas bonne soit les paramètres. Je peux difficilement t'aider sans ta table, ton code php qui traite les post et ta requête...
vendredi 30 septembre 2011 à 18:03:29 | Re : PHP + MySQL + JQuery et... Je deviens fou !

Romano58

Wow, aucune réaction :)

Sinon, je suis du même avis que galled: Difficile d'imaginer une quelconque solution sans avoir plus d'informations (structure des tables + requêtes?).
Tu peux essayer de débugger en exécutant les requêtes directement dans une invite de commande MySQL, pour voir si effectivement tu à un résultat/erreur de retourné. Ou avec un print_r ou var_dump (je ne sais plus) directement.

Aussi, je sais ça va paraître un peu tiré par les cheveux, mais vérifier que la requêtes a bien des résultats à renvoyer est une bonne idée. Je me suis fais avoir une fois comme ça. Voyant ma liste de "trucs" qui ne s'affiché pas je commencé à devenir dingue, mais c'étais à cause de la fatigue car la requête étais bonne, la table bien remplie, mais juste aucun résultats ne correspondais à ma requêtes :)

Sinon: Récupérer tout les paramètres qui seront placé dans la requêtes, et les afficher quelques part, afin de vérifier que tout passe bien et que tu te retrouve bien avec tout les paramètres, et qu'aucun ne c'est évadé en cachette.


Romain
vendredi 30 septembre 2011 à 19:55:50 | Re : PHP + MySQL + JQuery et... Je deviens fou !

BBFUNK01

Re,

désolé de répondre si tardivement, effectivement j'ai effectué plusieurs "débugages" afin de voir si tout s'affiche correctement. Pour le coup lorsque je fais un echo lors de la boucle effectuée dans la requête, je compare les données postées et les données de la BDD, et c'est sur les résultats "region" et "dpt" que ça foire systématiquement.
Pour tout dire au départ ma base contenait uniquement des données varchar pour les données "region" et "dpt", du genre : "Rhône-Alpes" et "AIN - 01".
Lorsque je récupérai ces résultats et les comparais dans un echo avec ceux postés j'avais exactement les mêmes... A force de chercher sans trouver je me suis résigné à reprendre ma BDD en y insérant des données INT en correspondance de celles en varchar, du genre : "Rhône-Alpes" - "23", et "AIN - 01" "1".
Verdict : même souci ça ne matche pas.
Honnêtement je ne sis plus où j'en suis tant j'ai retourné le code dans tous les sens, donc je vais laisser cela de côté pour aujourd'hui et y reprendre ensuite la tête reposée.

Effectivement je n'avais pas mis la totalité de mon code car celui-ci est long, et donc fastidieux à lire, mais je le posterai tout à l'heure au cas où vous avez envie de vous divertir . Et même si je reste sur l'idée que le JS a un rapport avec le problème, plus j'y pense et moins j'en suis sûr...

Merci en tout cas à vous 2 .


BBFUNK01

//C'est en forgeant qu'on devient forgeron... ;-) ;

musichrono

1 2

Cette discussion est classée dans : données, hide, append, listedpt, listeregion


Répondre à ce message

Sujets en rapport avec ce message

rechargement de page [ par mateo ] Bonjour a tous,J'alimente une base de données à partir d'une pop up, le resultat est visible sur l'opener.Je souhaiterai que lorsque je ferme ma pop u Formulaire [ par lavache13 ] Est-ce qu'on peut envoyer les données cochées d'un formulaire dans une autre page sans utiliser le php?J'arrive à vérifier les données du formulaire m pb base de donnees - popup [ par ratch ] Bonsoir à tous,J'ai un souciJ'ai une base de données qui affiche une liste de contactsavec la possiblité de cliquer sur le nom de la personne pouravoi un truc intéressant !! [ par mickelo ] ben en fait moi j'ai un tableau avec des données qui proviennent d'une base SQL piloté par des ASP, etc ...bref ma liste de données et tellement longu intéressant !!! [ par mickelo ] ben en fait moi j'ai un tableau avec des données qui proviennent d'une base SQL piloté par des ASP, etc ...bref ma liste de données et tellement longu Javascript et base de données [ par gosbos2003 ] Bonjour,Je voudrais faire un script javascript qui me permettrais de mettre à jour ma base de données.Pourriez vous m'aider s'il vous plait, je ne sai Transfert de données fichier PDF vers Excel [ par Disa ] Bonjour,Je suis occupé à créer un fichier PDF avec formulaire à remplir par l'utilisateur. Je cherche un moyen sur un réseau interne de transférer les base de données en javascript??????? [ par pascalrochon ] Bonjour, voici mon problème: mon fournisseur internet ne me permet pas d'utiliser le langage asp (he oui c'est comme ca certaine université au Québec) Transfert de données sous Netscape [ par christophe2 ] Bonjour, Je dispose du script suivant, qui fonctionne parfaitement sous IE, mais ne veut rien savoir sous Netscape : Modal dialog et page principale [ par ypothier ] Bonjour !Dans une page HTML. j'appele une page en ModalDialog et je veux retourner des données à ma page originale. Je sais que je peux retourner des


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 14,024 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales