Tester l'existence des données dans sql javascript

Fermé
AMARI - 2 mai 2013 à 10:30
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 - 2 mai 2013 à 17:12
Bonjour,
j'ai un formulaire qui contient 4 champs : année , mois , V1 et V2 (valeurs), et pour les valeurs je le rentre selon l'année , je veux faire un test javascript quand je clique sur l'année s'il y a des données pour cette année il va m'afficher le formulaire remplit si il y a pas des données il va m'afficher le formulaire vide , quelqu'un peut m'aider , merci d'avance.
A voir également:

60 réponses

Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:19
ok ça marche quand même un peu ça avance ça retourne à peut près ce que j'espérais
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:21
c'est bizarre là il dit qu'il connait pas l'annee. bon on va quand même changer quelques trucs

ton fichier parametre.php doit ressembler à ça:
$myArray = array();
$sql = "SELECT * FROM parametre WHERE annee = '".$_GET['annee']."'";

if ($result = $db->query($sql)) {

    while($row = $result->fetch_array(MYSQL_ASSOC)) {
            $myArray[] = $row;
    }
    echo json_encode($myArray);
}

$result->close();
$db->close(); 
?>
0
j'ai fait copier coller et il m'affiche que l'annee est indifinie ???
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:29
ajoute en haut du fichier php:

<?php
  print_r($_GET);
?>


et regarde dans l'onglet network du debug de chrome sur le fichier parametre.php si tu as bien un truc du genre : annee => 1993 (enfin l'année sur laquelle tu auras cliqué).
0
d'accord , après on fait quoi , le problème pour moi pourquoi il considère l'annee comme indifinie ??
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:26
c'est étonnant, parcequ'il fait quand même la requête. il faudrait savoir à quelle variable "annee" il fait référence.

sinon en attendant tu peux aussi modifier le fichier test.js comme ça:


$(function() {

	$("#annee").change(function() {
		console.log($('#annee').val());
		$.getJSON('transactions/parametre.php', {
			annee: $("#annee").val()
		}, function(data)
		{
		   if(data)
		   {
		   console.log(data);
				for(var i in data)
				{
					
					$("#Precipitation"+data[i]['mois']).val(data[i]['Precipitation']);
					$("#Evap_eau"+data[i]['mois']).val(data[i]['Evap_eau']);
				
				
				}
			
		   }
		   else
			  return false;
		});
	});
});

0
ça change rien et aussi pour toutes les années il m'affiche les même valeurs même si l'année en question elle a pas des valeurs dans la base sql :
{"values":[{"annee":"0","Mois":"0","Precipitation":"1","Evap_eau":"0"},{"annee":"0","Mois":"6","Precipitation":"6","Evap_eau":"6"},{"annee":"0","Mois":"13","Precipitation":"2","Evap_eau":"13"}]}
j'arrive pas à comprendre pourquoi :(
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:33
avec le nouveau code php que je t'ai donné tu ne devrais pas avoir ça comme retour ("values":[ ne devrait plus être là).
ajoute un print_r($myArray) juste avant le echo json_encode($myArray); et dit moi ce que ça donne
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:35
tiens et tu peux remplacer la ligne $sql = ...... ; par ça :
$sql = 'SELECT * FROM parametre WHERE annee = "'.$_GET['annee'].'"';
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:36
rassure toi on touche au but, une fois que ça fonctionnera on sera bien, chez moi tout fonctionne déjà. il manque plus que la requête se fasse bien à la bdd.
Je vais fumer une cigarette je reviens dans 10/15 minutes. essaie de trouver une solution ^^
0
il m'a afficher ça
Array ( [0] => Array ( [annee] => 0 [Mois] => 0 [Precipitation] => 1 [Evap_eau] => 0 ) [1] => Array ( [annee] => 0 [Mois] => 6 [Precipitation] => 6 [Evap_eau] => 6 ) [2] => Array ( [annee] => 0 [Mois] => 13 [Precipitation] => 2 [Evap_eau] => 13 ) ) [{"annee":"0","Mois":"0","Precipitation":"1","Evap_eau":"0"},{"annee":"0","Mois":"6","Precipitation":"6","Evap_eau":"6"},{"annee":"0","Mois":"13","Precipitation":"2","Evap_eau":"13"}]
pour toute les années , par contre dans le network il affiche parametre.php=> année selectionée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
d'accord je vous attends et au même temps je suis entrain de chercher d'ou vient l'erreur à tout de suite :)
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 15:52
me revoila.
Bon si on fait un select * from parametre WHERE annee = "1993" directement dans phpmyadmin ça donne quoi?

ajoute aussi un echo $sql; juste après la déclaration de la variable comme ça:

$sql = 'SELECT * FROM parametre WHERE annee = "'.$_GET['annee'].'"';
echo "la requête est: - "
echo $sql;


il devrait y avoir dans le network de chrome la requête qui s'affiche
0
il m'a affiché ça sans erreur :
Array ( ) SELECT * FROM parmetres WHERE annee = "1993"[{"annee":"1993","Mois":"0","Precipitation":"0","Evap_eau":"0"},{"annee":"1993","Mois":"6","Precipitation":"2","Evap_eau":"2"}]
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:03
c'est bizarre là ça fonctionne O_o'
par contre une précision pourquoi il y a un mois à 0? c'est pas de 1 à 12 les mois?
peux tu me copier coller l'ensemble de ton fichier parametre.php ici que je vois bien tout?
merci
0
par contre j'ai essayé d'exécuter la requête dans sql il m'a affiché :
MySQL a retourné un résultat vide (aucune ligne) et il prend pas en fait les valeurs qui sont dans la bases il prend juste la première ligne et si je le fasse il va afficher rien même dans la page web .
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:06
de quel type est le champ annee? int? float? varchar?
0
l'annee de type Year , en fait j'ai presque 3 ou bien 4 année qui ont des valeurs dans BD mais la requête ne le prends pas en considération c'est pour ça il m'affiche le mois 0 , même si j'efface la 1ére ligne de BD il va afficher tout en 0 . :(
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:12
et si tu fais SELECT * FROM paramatre WHERE annee = 1993

sans les guillemets
0
même problème :(:(:(:(
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
Modifié par Natio78 le 2/05/2013 à 16:15
je viens de faire un test chez moi en créant une base de données, directement dans phpmyadmin quand je fais
SELECT * FROM parametre WHERE annee = 1993
ça fonctionne

SELECT * FROM 'parametre' WHERE annee = "1993"

ça fonctionne aussi
0
j'arrive pas à comprendre pour chez moi ça marche pas pour il ne prend pas les valeurs insérées en considération :(:(
0
c'est bon ça marche pour l'année 1994 enfin voilà
Array ( ) SELECT * FROM parmetres WHERE annee = 1994[{"annee":"1994","Mois":"1","Precipitation":"1","Evap_eau":"1"},{"annee":"1994","Mois":"2","Precipitation":"1","Evap_eau":"7"},{"annee":"1994","Mois":"3","Precipitation":"2","Evap_eau":"3"},{"annee":"1994","Mois":"4","Precipitation":"4","Evap_eau":"4"},{"annee":"1994","Mois":"5","Precipitation":"5","Evap_eau":"5"},{"annee":"1994","Mois":"6","Precipitation":"6","Evap_eau":"6"},{"annee":"1994","Mois":"7","Precipitation":"7","Evap_eau":"7"},{"annee":"1994","Mois":"8","Precipitation":"8","Evap_eau":"8"},{"annee":"1994","Mois":"9","Precipitation":"9","Evap_eau":"9"},{"annee":"1994","Mois":"10","Precipitation":"10","Evap_eau":"10"},{"annee":"1994","Mois":"11","Precipitation":"11","Evap_eau":"11"},{"annee":"1994","Mois":"12","Precipitation":"12","Evap_eau":"12"}],
là on peut continuer
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:24
c'est parfait
on va pouvoir bientôt finir je pense je te fais un message pour ce qu'il te reste à modifier un dernier effort
0
j'ai pas compris il faut que je modifie quoi ? par contre est ce que dans les codes qu'on va le faire si l'utilisateur il va choisir une année dans laquelle il existe des valeurs dans la BD on va avoir le formulaire comme le mien juste il doit être rempli avec ses valeurs selon l'année ?
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:22
ahhhhh cool! attends je vérifie quelque chose rapidement je te dis ce que tu vas devoir modifier

0
d'accord je vous attends :)
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:26
il va falloir faire quelques modifications:
pour le fichier test.js tu as juste à le remplacer intégralement par ça:


$(function() {

	$("#annee").change(function() {
		console.log($('#annee').val());
		$.getJSON('transactions/parametre.php', {
			annee: $("#annee").val()
		}, function(data)
		{
		   if(data)
		   {
				for(var i in data)
				{
					console.log("mois : "+data[i]['mois']+" - precipitation :"+data[i]['Precipitation']);
					$("#Precipitation"+data[i]['mois']).val(data[i]['Precipitation']);
					$("#Evap_eau"+data[i]['mois']).val(data[i]['Evap_eau']);
				
				}
			
		   }
		   else
			  return false;
		});
	});
});



0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:29
il y a une erreur attention ! il faut mettre mois avec un M soit Mois partout sinon ça ne fonctionnera pas!
$("#Precipitation"+data[i]['Mois']).val(data[i]['Precipitation']);
$("#Evap_eau"+data[i]['Mois']).val(data[i]['Evap_eau']);
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:27
une dernière modification: dans ton fichier principal (index.php ?) tu vas devoir changer les id sur deux lignes:
echo '<input type="text" name="Precipitation['.$n.']"  id="Precipitation'.$n.'"  />';  

echo '<input type="text" name="Evap_eau['.$n.']" id= "Evap_eau'.$n.'" value="" />'; 

0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:28
en gros il faut supprimer les [ ] sur les id, tu peux les laisser sur le name si tu veux.
ligne 87 et 90 normalement
0
oui j'ai tout modifié mais ça change rien si j'ai clique sur l'année il fait pas le test , et il me renvoi pas un formulaire remplit :(
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:37
j'ai ajouté une autre réponse en dessous. normalement si tu prends l'année 1994 ça devrait fonctionner
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:38
après dis moi ce que tu vois dans la console debug de chrome dans l'onglet "console" et dans l'onglet "network" sur le fichier parametre.php
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:34
et pour finir, dans le fichier parametre.php il faut supprimer tous les "echo" et les print_r à part echo json_encode($myArray);
0
j'ai supprimé les echo et les print_r , j'ai remplacé la ligne :
//$sql1 = 'SELECT * FROM parmetres WHERE annee = 1994'; par
$sql1 = "SELECT * FROM parmetres WHERE annee = '".$_GET['annee']."'";
alors il a rien fait comme teste il m'a affiché le même erreur annee indifinie :(
0
par contre est ce que dans les codes qu'on va le faire si l'utilisateur il va choisir une année dans laquelle il existe des valeurs dans la BD on va avoir le formulaire comme le mien juste il doit être rempli avec ses valeurs selon l'année??
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:43
met ça :

$sql1 = 'SELECT * FROM parametre WHERE annee = '.$_GET['annee'];

pour la deuxième question oui, si l'utilisateur choisit une année pour laquelle il y a des valeurs ça va juste remplir les inputs avec les valeurs de la base de données
0
j'ai supprimé les echo et les print_r , j'ai remplacé la ligne :
//$sql1 = 'SELECT * FROM parmetres WHERE annee = 1994'; par
$sql1 = "SELECT * FROM parmetres WHERE annee = '".$_GET['annee']."'";
alors il a rien fait comme teste il m'a affiché le même erreur annee indifinie :(
et pour le teste je veux si une année sélectionné a des valeurs dans la BD il m'affiche le formulaire remplit c'à adire le teste avec la partie ajax il vont récupérer les valeur si il y a pas de valeurs il va m'afficher le formulaire vide , pour le console et network il affiche l'année sélectionnée ça marche ça
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:49
c'est pas normal que ça ne fonctionne pas, j'aimerai bien que tu m'envoies ton code par mail que je puisse le voir bien proprement
0
donnez moi votre adresse mail comme ça je le vous envoie
0
ça change rien pour moi l'année toujours in définie et si je clique sur une année qu'a déjà de valeurs il me laisse toujours dans la même page sans rien changer :(:( :( ça va me rendre folle :(:(
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
Modifié par Natio78 le 2/05/2013 à 16:52
fais moi une réponse avec un copier coller de chacun des 3 fichiers s'il te plait

Enjoy!
0
je voudrais votre adresse mail comme ça je vous envoie tous
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:56
ebertin@bieng.fr
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 16:57
je viens de monter une base de données sur mon ordi avec la même structure, requête en mysqli etc.. ça fonctionne chez moi :(
0
merci pour votre adresse une minute et je vous envoie tous
0
est ce que vous avez reçu mon mail
0
Natio78 Messages postés 719 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 27 mai 2013 96
2 mai 2013 à 17:12
oui j'en ai envoyé un autre en réponse.
attention il faut copier le fichier dbconnect.php à la racine du dossier, j'ai oublié de le mettre
0