firebug?
Version imprimable
firebug?
La source originale par rapport a son qu'on n'a fait n'est pas bonne.
Je dois faire un truc vite fait et je rectifie le code.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 <!DOCTYPE html> <html> <head> <title></title> <link href="styles/kendo.common.min.css" rel="stylesheet" /> <link href="styles/kendo.default.min.css" rel="stylesheet" /> <script src="js/jquery.min.js"></script> <script src="js/kendo.all.min.js"></script> </head> <body> <?php include("menu.php"); ?> <?php include("connexionbdd.php"); // query for the definition, type of this problem ?> <?php $sql_pb="SELECT * from problem where id_Pb=1"; $res_pb=mysql_query($sql_pb); $rows_pb=mysql_fetch_assoc($res_pb); ?></br></br></br></br>Definition: <?php echo $rows_pb['def_Pb']; $var=$rows_pb['id_Pb_Type'] ?> </br></br> <script src="people.js"></script> <div id="example" class="k-content"> <div id="clientsDb"> <div id="grid" style="height:580px"></div> </div> <style scoped> #clientsDb { width: 892px; margin: 40px auto; padding:2px 4px 0 4px; } </style> <div id="grid"></div> <div id="grid"></div> <?php $sql_inc="SELECT tb_i.id_Inc,tb_i.id_Pb,tb_i.name_Inc,tb_i.desc_Inc,tb_i.date_Inc,tb_i.id_Loc FROM incident tb_i LEFT JOIN location tb_l ON tb_i.id_Loc = tb_l.id_Loc where tb_i.id_Pb=1 ORDER BY tb_i.date_Inc DESC LIMIT 5 "; $res_inc=mysql_query($sql_inc); while($rows_inc=mysql_fetch_assoc($res_inc)){ $data_set .= "{"; $data_set .= "date:'" . $rows_inc['date_Inc'] . "',"; $data_set .= "name:'" . $rows_inc['name_Inc'] . "',"; $data_set .= "desc:'" . $rows_inc['desc_Inc'] . "',"; $data_set .= "location:'" . $rows_inc['id_Loc'] . "'"; $data_set .= "},"; } ?> <script> alert("Plop"); //on declare une variable et on affecte le code PHP var data_set = <?php echo $data_set; ?>; //on controle le schéma js alert(data_set); //on verifie le type de donnée js alert(typeOf(data_set)); var dataSource = new kendo.data.DataSource({ data: [data_set] }); $("#grid").kendoGrid({ columns: [ { field: "date" }, { field: "name" }, { field: "desc" }, { field: "location" } ], dataSource: dataSource, groupable: true, sortable: true, pageable: { refresh: true, pageSizes: true }, }); var grid = $("#grid").data("kendoGrid"); grid.setDataSource(dataSource); </script> </div> </body> </html>
Bonjour,
si je puis me permettre...
@headmax :
Es-tu s�r que :
- ce que tu proposes r�pond bien � la question initiale ?
- ton interlocutrice a le niveau requis pour comprendre et assimiler ta m�thode ?
- tes explications sont-elles suffisantes ? (des liens vers des tutos/cours pourraient �tre un plus)
- donnes-tu des r�ponses � ses questions (firebug ?...) ?
Je pense que tu es en mode "monologue" depuis un bon moment... :whistle2:
@madusa :
- comprends-tu ce que headmax te propose ? la m�thode ? le principe de fonctionnement ?
- n'avais-tu pas un code � nous montrer AVANT l'intervention de headmax => celui avec lequel TU construit ton tableau + ... ?
N.B. firebug = plugin � installer sur Firefox => aide pr�cieuse pour le d�bogage
Google Chrome propose aussi un outil similaire.
Je comprend la m�thode donc �a va ...J'arrive � retrouver mon id�e �galement ....
�a ne m'affiche rien (et j'ai mis $data_set=0; parce que il me donnait comme erreur que $data_set n'est pas d�finie
enfin voil� pour la concat�nation:
le script ne marche pas parce-que j'ai aucune fenetre d'alert meme quand je place justeCode:
1
2
3
4 ... $data_set=""; $data_set ="{"; ...
au d�butCode:
1
2 <script> alert("ok"); </script>
J'arrive comme un cheveu sur la soupe mais ... pas convaincu que la boucle fonctionne. A chaque tour de boucle tu sembles �craser la variable. Donc m�me si la requ�te renvoie 10 r�sultats, la cha�ne data_set ne contiendra que le dernier.
Il faut que la cha�ne finale ait ce format, non ?
Code:
1
2
3
4
5
6 data: [ { /*"les résultats de la première ligne de ma table"*/ }, { /*"les résultats de la seconde ligne de ma table"*/ }, { /*"les résultats de la troisième ligne de ma table"*/ } // etc ]
utilise les outils qui sont faits pour �a. Je pense � json_encode. Il te formatera ton objet javascript convenablement et tu n'auras pas de probl�mes de virgules ou autres fioritures manquantes :
Code:
1
2
3
4
5 $data_row = array(); while($rows_inc=mysql_fetch_assoc($res_inc)){ $data_row[] = $rows_inc; } $data_set = json_encode($data_row);
oui tu as raison pour la boucle. En essayant ce code, je vois l'affichage que du dernier r�sultat de ma requ�teSi je d�fini un tableau et que je le rempli de $data_set, �a devrai le faire, non?Code:var_dump($data_set);
a oui mais pourquoi �a ne m'affiche ce ne serais -ce que le dernier ?
Par exemple dans ton code ci dessous :
A chaque tour de boucle, $data_set = "{"; r�initialise la variable $data_set ! Du coup, seul le dernier enregistrement du r�sultat de ta requ�te sera contenu dedans.Code:
1
2
3
4
5
6
7
8
9
10
11
12 while($rows_inc=mysql_fetch_assoc($res_inc)){ $data_set = "{"; $data_set .= "data: ["; $data_set .= "{"; $data_set .= "date:'" . $rows_inc['date_Inc'] . "',"; $data_set .= "name:'" . $rows_inc['name_Inc'] . "',"; $data_set .= "desc:'" . $rows_inc['desc_Inc'] . "',"; $data_set .= "location:'" . $rows_inc['id_Loc'] . "'"; $data_set .= "}"; $data_set .= "]"; $data_set .= "}"; }
Oui, voir mon bout de code pr�sent� en exemple ci-avantCitation:
Si je d�fini un tableau et que je le rempli de $data_set, �a devrai le faire, non?
oui �a remplace � chaque fois la variable et il reste donc que le dernier r�sultat de la requete.
Ce n'est pas plus correct de faire ceci?
mettre dans le tableau chaque $dataset?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php $sql_inc="SELECT tb_i.id_Inc,tb_i.id_Pb,tb_i.name_Inc,tb_i.desc_Inc,tb_i.date_Inc,tb_i.id_Loc FROM incident tb_i LEFT JOIN location tb_l ON tb_i.id_Loc = tb_l.id_Loc where tb_i.id_Pb=1 ORDER BY tb_i.date_Inc DESC LIMIT 5 "; $res_inc=mysql_query($sql_inc); $data_row = array(); while($rows_inc=mysql_fetch_assoc($res_inc) && $i<4){ $data_set .= "{"; $data_set .= "date:'" . $rows_inc['date_Inc'] . "',"; $data_set .= "name:'" . $rows_inc['name_Inc'] . "',"; $data_set .= "desc:'" . $rows_inc['desc_Inc'] . "',"; $data_set .= "location:'" . $rows_inc['id_Loc'] . "'"; $data_set .= "},"; $data_row[] = $data_set; } ?>
apr�s avoir faitj'ai bien le type de ce dernier :array avec les 4 lignes (les 4 r�sultats de ma requete) donc maintenant le script JS n'est pas lu car meme quand je met une alert box rien ne s'affiche...Code:var_dump($data_rows);
J'essaye un alert box un peu partout , il marche bien tout en haut ou en bas ou entre le php et le script suivant mais pas dans le script suivant
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <script> alert("Plop"); //on declare une variable et on affecte le code PHP var data_set = <?php echo $data_set; ?>; //on controle le schéma js alert(data_set); //on verifie le type de donnée js alert(typeOf(data_set)); var dataSource = new kendo.data.DataSource({ data: [data_set] }); $("#grid").kendoGrid({ columns: [ { field: "date" }, { field: "name" }, { field: "desc" }, { field: "location" } ], dataSource: dataSource, groupable: true, sortable: true, pageable: { refresh: true, pageSizes: true }, }); var grid = $("#grid").data("kendoGrid"); grid.setDataSource(dataSource);alert("obxx"); </script>
:aie:
Essaie de faire tourner le script dans ta t�te, ou sur le papier ...
- data_set n'est pas d�fini, donc d�s la premi�re concat�nation cela va planter.
- imaginons que tu aies d�clar�/initialis� data_set avant la boucle, le premier �l�ment de ton tableau data_row sera juste, mais le deuxi�me ? Il contiendra et le premier r�sultat de la requ�te, et le deuxi�me vu que tu ne r�initialises pas data_set ...
Comme je l'ai dit plus haut, laisse les outils PHP construire la chaine pour toi ! Tu n'as pas � te soucier de �a ...
D'ailleurs pourquoi joindre la table lcoation ? Je n'ai pas l'impression que tu te serves de ce qu'elle contient ...
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php // récupération des colonnes que tu souhaites avoir dans ton tableau d'objet : à savoir date, name, desc et location $sql_inc="SELECT date_Inc as date, name_Inc as name, desc_Inc as desc, id_Loc as location FROM incident WHERE id_Pb = 1 ORDER BY date_Inc DESC LIMIT 5"; $res_inc=mysql_query($sql_inc); $data_row = array(); while($rows_inc=mysql_fetch_assoc($res_inc)){ $data_row[] = $rows_inc; } $data_set = json_encode($data_row); ?>
J'utilise 2 tables donc oui la requete est utile
L'exemple ci-dessus va afficher :Code:
1
2
3
4
5 <?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?>
Donc je dois mettre date ,desc,name,location dans mon array ?Code:{"a":1,"b":2,"c":3,"d":4,"e":5}
Pour avoirCode:{"date":1,"name":2,"desc":3,"location":4}
oui tu as tout compris.
Tu as analys� le code que je viens de poster ? �a fait exactement �a ... c'est pour �a que j'ai renomm� le nom des colonnes de ta requ�te
Euh... faut le dire vite quand m�me... :aie:Citation:
Envoy� par Kaamo
:pastaper:
oui mais une requete ne donne que les donn�es pr�sents et pas le nom de la colonne + les donn�es?
La requete ne fonctionne pas � cause de la location je pense parce que la location n'est pas dans la table incident mais location (voir le document joint)
:)
N'h�site pas � te r�f�rer � la documentation. C'est bien expliqu�, avec des exemples, c'est le premier r�flexe � avoir ;)
Merci
Pour la requete le "AS " permet de renommer la colonne et non de mettre le nom de la colonne dans le r�sultat , n'est ce pas ?
Dans la table incident, selon cette capture d'�cran, il y a bel et bien id_Loc
:koi: Et bien si. Pour r�cup�rer, par exemple, la valeur de la colonne 'date_Inc' tu fais bien $rows_inc['date_Inc'], non ?Citation:
oui mais une requete ne donne que les donn�es pr�sents et pas le nom de la colonne + les donn�es?
$rows_inc est un tableau associatif. Donc si on reprend le code que j'ai post�, il ressemble � �a
:
Quand tu te pose ce genre de question n'h�iste pas � lire les documentations, c'est la base. Si tu ne l'as pas appr�hend� tu vas droit dans le mur.Code:array('date' => 'valeur de la date', 'name' => 'valeur de name', 'desc' => 'valeur de desc', 'location' => 'id de la location')
Aussi, n'h�site pas � y aller pas � pas, afficher ce que contiennent les variables. Ne copie/colle pas d'un seul bloc des codes que tu peux trouver au d�tour d'internet
D'accord mais je veux le nom de la location donc je dois refaire une requete pour trouver le nom de la location � partir de l'id de la location dans la table location
erreur: requete fausse me dit il
Ok
Merci de tes conseils je vais y aller pas � pas :)