begin process at 2012 05 26 12:09:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

[clos] PHP + MySQL + JQuery... et un problème très très épineux...


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

[clos] PHP + MySQL + JQuery... et un problème très très épineux...

Echange clos Echange clos, plus de réponse possible sur cet échange

vendredi 30 septembre 2011 à 09:02:38 | [clos] PHP + MySQL + JQuery... et un problème très très épineux...

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 à 18:20:13 | Re : PHP + MySQL + JQuery... et un problème très très épineux...

Julien39

Membre Club Administrateur CodeS-SourceS
Bonjour,

Quand ta question concerne plusieurs langages, essayes de choisir le forum le plus approprié pour la réponse.

Pour ceux qui veulent répondre au sujet c'est ici : http://www.javascriptfr.com/forum/sujet-PHP-MYSQL-JQUERY-JE-DEVIENS-FOU_1549082.aspx

Je sais que ton message concerne les trois langages sur lesquels tu l'as déposé, mais je clos pour que tout le monde réponds sur le meme sujet.


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


Sujets en rapport avec ce message

création d'une automatique d'une base de données SQLServer [ par MokhTelnet ] bonjourj'ai besoin de savoir comment on peut créer une base de données SQLServer lors de l'installation d'une application.mon client ne veux se charge création automatique d'une base de données SQLServer [ par MokhTelnet ] bonjour j'ai besoin de savoir comment on peut créer une base de données SQLServer lors de l'installation d'une application. mon client ne veux se char connection base de données(site web) [ par oussama_08 ] Bonjourj'ai en cours de realisation d'une site web et j'ai un probléme de realiser une connection à mes bases de données (l'outil est dreamweaver),et Récuperations dynamique [ par fleurdeneige ] Salut à tous,je débute en bdd et pour tout ce ke j'ai compris juske là les données a mettre dans la bdd sont statiques.Moi j'aimerais pouvoir récupére Accès aux bases de données pour un service de windows [ par vincentstryckmans ] Bonjour,Je m'explique :Je souhaite qu'un service de windows XP tourne la nuit et effectue plusieurs manipulations dans une base de données Interbase.L liaison de données dans SQL Server [ par titoune76 ] Comment faire dans SQL Server pour créer une vue selectionnant plusieurs champs de plusieurs tables (jusque la pas de pb), ces tables se situant dans [Script transact-sql][SQL server 2000] Copie d'une base à une autre [ par rabbiwan ] Bonjour, J'ai sur mon serveur 2 bases de données, et je souhaiterai faire un travail tous les soirs (routine), qui consiste à copier une partie des do Nombre de session [ par cispo ] Bonjour,Je travaille sous Access 2003 et je voudrais savoir si il existe une requete pour savoir si quelqu'un est déja connecté à la base de données, indexation mysql [ par dibouched ] bojour , j'ai une base de données mysql et je cherceh comment  indexer des colonne pour une recherche fulltext ensuite mon probleme est que j'ai besoi Procédure stockée [ par batobad ] bonjourj'ai une base de données sur sql server qui contient quatre tables dont l'une, que j'ai appélée article, contient une clé primaire et trois clé


Nos sponsors


Sondage...

Comparez les prix

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 : 0,406 sec (4)

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