Valeur JavaScript dans requete SQL
Résolu/Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
Modifié le 13 nov. 2018 à 10:49
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 16 nov. 2018 à 14:18
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 16 nov. 2018 à 14:18
A voir également:
- Valeur JavaScript dans requete SQL
- Telecharger javascript - Télécharger - Langages
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
- #Valeur excel somme - Guide
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Google Docs
6 réponses
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 10:52
13 nov. 2018 à 10:52
Bonjour,
A quoi correspond le code que tu viens de nous poster ?
Il n'y a aucun AJAX à l'intérieur... ne serait-ce pas le code APPELÉ par ton code ajax justement ?
Si oui... le javascript n'y a pas sa place !
Il serait bien que tu nous montres ton code ajax (en indiquant le nom de chaque fichier)
Aussi bien le Javascript... que côté PHP.
Ensuite, explique ce que tu désires réaliser.
là on pourra peut-être t'aider....
A quoi correspond le code que tu viens de nous poster ?
Il n'y a aucun AJAX à l'intérieur... ne serait-ce pas le code APPELÉ par ton code ajax justement ?
Si oui... le javascript n'y a pas sa place !
Il serait bien que tu nous montres ton code ajax (en indiquant le nom de chaque fichier)
Aussi bien le Javascript... que côté PHP.
Ensuite, explique ce que tu désires réaliser.
là on pourra peut-être t'aider....
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
Modifié le 13 nov. 2018 à 14:12
Modifié le 13 nov. 2018 à 14:12
Le Javascript s'exécute côté utilisateur (dans le navigateur) alors que le php s'exécute côté SERVEUR.
Tes variables JS ne peuvent pas être récupérées comme tu le fais dans un script php !
Ne mélange pas non plus le quotes et les backquotes ( 'table' n'est pas pareil que `table`)
Voici à quoi devrait ressembler ton code avec les corrections nécéssaires :
Tes variables JS ne peuvent pas être récupérées comme tu le fais dans un script php !
Ne mélange pas non plus le quotes et les backquotes ( 'table' n'est pas pareil que `table`)
Voici à quoi devrait ressembler ton code avec les corrections nécéssaires :
//recupération des variables de ton formulaire var c_Weig = $('#VAL_Weight').val(); var c_Deli = $('#VAL_Dlvry').val(); var c_Zone = $('#VAL_Zones').val(); var c_Table = c_Deli == "POSTE" ? "tb_laposte" : null; var c_Table = c_Deli == "DHL" ? "tb_dhl" : null; //on stocke les variables au format JSON pour les envoyer en ajax var data = {c_Weig:c_Weig, c_Deli:c_Deli, c_Table:c_Table,c_Zone:c_Zone }; //appel Ajax $.ajax({ type: "POST", url: "_calcul.php", cache: false, data: data, async: true, dataType: "json" }) .done(function(reponse){ var erreur = typeof(reponse.Error)!='undefined' ? reponse.Error : null; var result = typeof(reponse.result)!='undefined' ? reponse.result : null; if(!erreur){ if(result!=null){ console.log('Resultat',result);//affiche le résultat dans la console du navigateur //traitement du resultat //par exemple : var v=""; $.each(result,function(i,vx){ v += vx; } $("#VAL_Amunt").val(v); } }else{ alert('Erreur ajax !'); console.log('Erreur',erreur);//affiche l'erreur dans la console du navigateur } }) .fail(function(jqXHR, textStatus){ console.log('Ajax error :',jqXHR, textStatus); alert('Erreur AJAX !'); }); }
//ici tu placeras la connexion à ta bdd // par exemple: // require_once 'cnxBdd.php'; //récupération propre des variables avant de les utiliser $c_table = !empty($_POST['c_Table']) ? $_POST['c_Table']: NULL; $c_Weig = !empty($_POST['c_Weig']) ? $_POST['c_Weig']: NULL; $c_Deli = !empty($_POST['c_Deli']) ? $_POST['c_Deli']: NULL; $c_Zone = !empty($_POST['c_Zone']) ? $_POST['c_Zone']: NULL; $result = array(); if($c_table){ $sql = "SELECT * FROM `".$c_table."` WHERE `".$c_Weig."` >= Poids_min AND `".$c_Weig."` <= Poids_max AND(`".$c_Zone."` = 'ZoneA' OR `".$c_Zone."` = 'ZoneB' OR `".$c_Zone."` = 'Zone1' OR `".$c_Zone."` = 'Zone2' OR `".$c_Zone."` = 'Zone3' OR `".$c_Zone."` = 'Zone4' OR `".$c_Zone."` = 'Zone5' OR `".$c_Zone."` = 'Zone6' OR `".$c_Zone."` = 'Zone7' OR `".$c_Zone."` = 'Zone8'"; try{ $Stat = $pdo->prepare($sql); $Stat->execute(); $result['success'] = $Stat->fetchAll(PDO::FETCH_ASSOC)) }catch(PDOException $e){ $result['Error'] = "<div class='alert alert-danger'>".$e->getMessage()."</div>"; } } //on renvoi les données au javascript au format json echo json_encode($result); exit();
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
13 nov. 2018 à 18:55
13 nov. 2018 à 18:55
O_O !! Jordan !! je suis mort ! et dire que je comptais me débrouiller pour faire ça tout seul au début !!!
En tout cas merci pour ton aide !
Il y avait quelques erreurs de syntaxes que j'ai corrigé.
Je n'ai plus d'erreurs en tant que tels, mais la console me dit sur cette ligne :
Aussi, j'ai changé la requête en mettant ceci à sa place :
Malgré ça je n'ai pas de résultats dans mon input,
En tout cas merci pour ton aide !
Il y avait quelques erreurs de syntaxes que j'ai corrigé.
Je n'ai plus d'erreurs en tant que tels, mais la console me dit sur cette ligne :
$.each(result,function(i,vx)) {v += vx;}et me dit :
Uncaught SyntaxError: Unexpected token ).
Aussi, j'ai changé la requête en mettant ceci à sa place :
$sql = "SELECT `".$c_Zone."` FROM `".$c_table."` WHERE $c_Weig BETWEEN Poids_min AND Poids_max ";
Malgré ça je n'ai pas de résultats dans mon input,
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 19:14
13 nov. 2018 à 19:14
La parenthèse du each fermante n'est pas à la bonne place
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 19:35
13 nov. 2018 à 19:35
$.each(result,function(i,vx){ v += vx; });
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
13 nov. 2018 à 11:08
13 nov. 2018 à 11:08
Merci Jordan.
Dans un input, je récupère le poids total des produits.
Ensuite, je dois aller faire une comparaison dans une table afin d'avoir le prix selon le poids et la zone de livraison.
Je me suis dis que je dois utiliser Ajax pour rafraichir la page appelée toutes les X secondes et (oui tu as raison, c'est la page appelée)...
J'ai des valeurs dans des inputs qui s'actualise quand l'utilisateur choisis un service ou autre :
Le service : poste, dhl
La zone : A, B, 1 à 8 :
Le poids :
Voici ce que j'essaie de faire depuis quelques jours mais j'y arrive pas parce que je ne sais pas comment récupérer ces valeurs et les mettre dans ma requête.
J'ai essayé de ne pas me compliquer la vie avec des
Dans un input, je récupère le poids total des produits.
Ensuite, je dois aller faire une comparaison dans une table afin d'avoir le prix selon le poids et la zone de livraison.
Je me suis dis que je dois utiliser Ajax pour rafraichir la page appelée toutes les X secondes et (oui tu as raison, c'est la page appelée)...
J'ai des valeurs dans des inputs qui s'actualise quand l'utilisateur choisis un service ou autre :
Le service : poste, dhl
id="VAL_Delivery"
La zone : A, B, 1 à 8 :
id="VAL_Zone"
Le poids :
id="VAL_Weight"
Si le service est égale à poste, alors la table sql est tb_poste, sinon tb_dhl
Ensuite, une comparaison du poids doit se faire :
Si VAL_Weight >= tb_poste.poids_min ET VAL_Weight <= tb_poste.poids_max, affiche le prix selon la Zone
Voici ce que j'essaie de faire depuis quelques jours mais j'y arrive pas parce que je ne sais pas comment récupérer ces valeurs et les mettre dans ma requête.
J'ai essayé de ne pas me compliquer la vie avec des
GET['VAL_Delivery']mais j'y arrive toujours pas...
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 11:17
13 nov. 2018 à 11:17
je ne sais pas comment récupérer ces valeurs et les mettre dans ma requête.
Ca se passe côté Javascript DANS la page qui fait l'appel AJAX. (que tu ne nous as toujours pas montré ! )
Au passage, (encore une fois....) merci de poster ton code en utilisant CORRECTEMENT les balises de code (pour que l'on ait la coloration syntaxique )
Explications sur l'utilisation des balises de code disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
Modifié le 13 nov. 2018 à 13:23
Modifié le 13 nov. 2018 à 13:23
Désolé Jordan, JavaScript et Ajax... j'y connais rien encore, prends moi au niveau de mon ignorance :$
Lorsque l'utilisateur sélectionne ses services, ces zones de textes sont automatiquement renseignées comme suite :
index.php (page ajax) :
Dans cette même page, j'ai mon ajax qui rafraîchit une autre page où je souhaite faire ma requête :
Et donc insérer le montant du transport selon sa zone choisie dans
Ensuite donc dans mon _calcul.php :
Il y a certainement plus simple, mais j'avoue que j'ai une constipation cérébrale en ce moment... :\
Lorsque l'utilisateur sélectionne ses services, ces zones de textes sont automatiquement renseignées comme suite :
index.php (page ajax) :
Zone : <input name="VAL_Zones" id="VAL_Zones" value="A"> Delivery : <input name="VAL_Dlvry" id="VAL_Dlvry" value="POSTE"> Money : <input name="VAL_Money" id="VAL_Money" value="ORANGE"> Total weight : <input name="VAL_Weight" id="VAL_Weight" value="4.30142"> Amount weight : <input name="VAL_Amount" id="VAL_Amount" value="0">
Dans cette même page, j'ai mon ajax qui rafraîchit une autre page où je souhaite faire ma requête :
<script> function loadLog() { $.ajax({ url: "_calcul.php", cache: false, success: function(v) { $("#VAL_Amunt").val(v); }, }); } setInterval(loadLog, 1000); </script>
Et donc insérer le montant du transport selon sa zone choisie dans
id="VAL_Amount".
Ensuite donc dans mon _calcul.php :
<script> var c_Weig = $('#VAL_Weight').val(); var c_Deli = $('#VAL_Dlvry').val(); if(c_Deli == "POSTE") {var c_Table = "tb_laposte";} if(c_Deli == "DHL") {var c_Table = "tb_dhl";} </script> try{$Stat = $pdo->query("SELECT * FROM '".c_table."' WHERE '".$c_Weig."' >= Poids_min AND '".$c_Weig."' <= Poids_max AND '".$c_Zone."' = ZoneA OR '".$c_Zone."' = ZoneB OR '".$c_Zone."' = Zone1 OR '".$c_Zone."' = Zone2 OR '".$c_Zone."' = Zone3 OR '".$c_Zone."' = Zone4 OR '".$c_Zone."' = Zone5 OR '".$c_Zone."' = Zone6 OR '".$c_Zone."' = Zone7 OR '".$c_Zone."' = Zone8 "); while($data = $Stat->fetch(PDO::FETCH_ASSOC)) { $Montant = $data["ZoneA"].$data["ZoneB"].$data["Zone1"].$data["Zone2"].$data["Zone3"].$data["Zone4"].$data["Zone5"].$data["Zone6"].$data["Zone7"].$data["Zone8"]; }}catch(PDOException $e){echo "<div class='alert alert-danger'>".$e->getMessage()."</div>";}
Il y a certainement plus simple, mais j'avoue que j'ai une constipation cérébrale en ce moment... :\
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
13 nov. 2018 à 21:42
13 nov. 2018 à 21:42
Ligne corrigée, coquilles et valeurs nettoyées, aucune erreur console mais pas de résultats.
Penses-tu que j'ai oublié quelque chose ?
Voici le script de ma page d'accueil ;
Et celui de ma page calcul :
Penses-tu que j'ai oublié quelque chose ?
Voici le script de ma page d'accueil ;
//recupération des variables de ton formulaire var c_Weig = $('#VAL_Weigt').val(); var c_Deli = $('#VAL_Dlvry').val(); var c_Zone = $('#VAL_Zones').val(); var c_Table = c_Deli == "POSTE" ? "tb_shop_prices_laposte" : null; var c_Table = c_Deli == "DHL" ? "tb_shop_prices_dhl" : null; //on stocke les variables au format JSON pour les envoyer en ajax var data = { c_Weig: c_Weig, c_Deli: c_Deli, c_Table: c_Table, c_Zone: c_Zone }; //appel Ajax $.ajax({ type: "POST", url: "_shop-calcul.php", cache: false, data: data, async: true, dataType: "json" }) .done(function(reponse) { var erreur = typeof(reponse.Error) != 'undefined' ? reponse.Error : null; var result = typeof(reponse.result) != 'undefined' ? reponse.result : null; if (!erreur) { if (result != null) { console.log('Resultat', result); //affiche le résultat dans la console du navigateur //traitement du resultat //par exemple : var v = ""; $.each(result, function(i, vx) { v += vx; }); $("#VAL_Amunt").val(v); } } else { alert('Erreur ajax !'); console.log('Erreur', erreur); } }) .fail(function(jqXHR, textStatus) { console.log('Ajax error :', jqXHR, textStatus); alert('Erreur AJAX !'); });
Et celui de ma page calcul :
<?php $c_Table = !empty($_POST['c_Table']) ? $_POST['c_Table']: NULL; $c_Weig = !empty($_POST['c_Weig']) ? $_POST['c_Weig']: NULL; $c_Deli = !empty($_POST['c_Deli']) ? $_POST['c_Deli']: NULL; $c_Zone = !empty($_POST['c_Zone']) ? $_POST['c_Zone']: NULL; $result = array(); if($c_Table){ $sql = "SELECT `".$c_Zone."` FROM `".$c_Table."` WHERE `".$c_Weig."` BETWEEN Poids_min AND Poids_max "; try{ $Stat = $pdo->prepare($sql); $Stat->execute(); $result['success'] = $Stat->fetchAll(PDO::FETCH_ASSOC); } catch(PDOException $e) {$result['Error'] = "<div class='alert alert-danger'>".$e->getMessage()."</div>";} } echo json_encode($result); exit(); ?>
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 22:08
13 nov. 2018 à 22:08
Tu nous as collé le code complet la ??
Car si oui... tu as légèrement oublié de mettre le code de connexion à la bdd..... (alors que c'était quand même marqué dans les commentaires du code que je t'ai donné !!! )
N'oublies pas non plus de regarder dans la CONSOLE de ton navigateur afin de voir ce que retourne l'appel ajax.
(de préférence utilise Firefox ou sinon installe le plugin ajax debuger pour chrome )
Car si oui... tu as légèrement oublié de mettre le code de connexion à la bdd..... (alors que c'était quand même marqué dans les commentaires du code que je t'ai donné !!! )
N'oublies pas non plus de regarder dans la CONSOLE de ton navigateur afin de voir ce que retourne l'appel ajax.
(de préférence utilise Firefox ou sinon installe le plugin ajax debuger pour chrome )
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
13 nov. 2018 à 22:10
13 nov. 2018 à 22:10
Oui oui la connexion a la base de donnée est faite... require_once
La console n'affiche rien comme message en tout cas
La console n'affiche rien comme message en tout cas
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
>
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
13 nov. 2018 à 22:13
13 nov. 2018 à 22:13
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 22:14
13 nov. 2018 à 22:14
et au passage.... moi c'est jordane .. (le prénom a été francisé)
donc merci de mettre le "e" ^^
donc merci de mettre le "e" ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
13 nov. 2018 à 22:23
13 nov. 2018 à 22:23
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 22:48
13 nov. 2018 à 22:48
Tu as bien placé le code javascript dans la fonction loadLog() ?
Cette fonction est appellée par quel moyen ?
Il serait bien que tu nous montres le code html COMPLET de ta page....
Pense aussi que tu peux ajouter, dans ton code JS des console.log() et/ou des alerte() pour essayer de voir si tu entres bien dedans....
Pense aussi à regarder (comme dans ma capture écran....) dans l'onglet "network"
Cette fonction est appellée par quel moyen ?
Il serait bien que tu nous montres le code html COMPLET de ta page....
Pense aussi que tu peux ajouter, dans ton code JS des console.log() et/ou des alerte() pour essayer de voir si tu entres bien dedans....
Pense aussi à regarder (comme dans ma capture écran....) dans l'onglet "network"
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
13 nov. 2018 à 23:16
13 nov. 2018 à 23:16
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 mars 2025
4 740
13 nov. 2018 à 23:24
13 nov. 2018 à 23:24
Il faudrait regarder dans l'onglet paramètres.
Je pense que cela vient de la variable c_Table
modifie le code JS comme ceci :
A remplacer par
Je pense que cela vient de la variable c_Table
modifie le code JS comme ceci :
var c_Table = c_Deli == "POSTE" ? "tb_shop_prices_laposte" : null; var c_Table = c_Deli == "DHL" ? "tb_shop_prices_dhl" : null;
A remplacer par
var c_Table; switch(c_Deli){ case "POSTE": c_Table = "tb_shop_prices_laposte"; break; case "DHL" : c_Table = "tb_shop_prices_dhl"; break; default: c_Table = null; break; }
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
Modifié le 14 nov. 2018 à 00:14
Modifié le 14 nov. 2018 à 00:14
Le code a été modifié comme tu as demandé.
La console n'affiche aucune erreur.
J'ai changé le nom de la table en attribuant une table inexistante, il affiche une erreur comme quoi cette table n'existe pas. Ce qui dit qu'il récupère bien le nom de la table... mais pourquoi il n'affiche rien ?
J'ai changé ma requête de
en
sachant que $c_Weig es un float, mais pareil.
La console n'affiche aucune erreur.
J'ai changé le nom de la table en attribuant une table inexistante, il affiche une erreur comme quoi cette table n'existe pas. Ce qui dit qu'il récupère bien le nom de la table... mais pourquoi il n'affiche rien ?
J'ai changé ma requête de
SELECT `".$c_Zone."` FROM `".$c_Table."` WHERE `".$c_Weig."` BETWEEN Poids_min AND Poids_max
en
SELECT $c_Zone FROM $c_Table WHERE $c_Weig BETWEEN Poids_min AND Poids_max
sachant que $c_Weig es un float, mais pareil.
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
14 nov. 2018 à 00:23
14 nov. 2018 à 00:23
Je viens de tester aussi la requête en dur :
SELECT ZoneA FROM tb_shop_prices_laposte WHERE 4301.42 BETWEEN Poids_min AND Poids_max, pareil, aucun résultat...
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
16 nov. 2018 à 14:18
16 nov. 2018 à 14:18
Bonjour Jordane,
Je tiens a te remercier pour le temps et l'effort que tu as pris pour résoudre mon problème.
Tout fonctionne parfaitement maintenant, et j'avoue que je ne serai pas arrivé sans toi.
Je te dois une fière chandelle !
Merci encore !
Je tiens a te remercier pour le temps et l'effort que tu as pris pour résoudre mon problème.
Tout fonctionne parfaitement maintenant, et j'avoue que je ne serai pas arrivé sans toi.
Je te dois une fière chandelle !
Merci encore !