Et dire que je pensais que c'était un truc tout simple
Et dire que je pensais que c'était un truc tout simple
c'est tout simple ...
Quand on comprend ce que l'on fait ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Parce que tu sais pourquoi ça déconne ?
Concentre toi sur la réception de ton JSON ...
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
C'est bon ! ça fonctionne
En fait, il ne fallait pas enlever le JSON.parse !!
Code js : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <script> $(document).ready(function () { $("#MonSelect").change(function(){ var id=$('#MonSelect').val(); $.ajax({ type: "POST", data: {"ID" : id}, url: "traitement.php", dataType: "JSON", success:function(data){ var Text = JSON.parse(data); console.log(Text['lieu'], Text['adresse']); $("#input_text").val(Text['lieu']); $("#input_text2").val(Text['adresse']); } }); }); }); </script>
Merci pour ton aide !
là on est dans la quatrième dimension ...
avec un dataType JSON ton retour doit être un json donc pas besoin de JSON.parse ...
Tu as un souci là
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Bon, j'ai enlevé le résolu, je remets le script qui fonctionne sans souci :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> <script src="js/jquery-latest.js"></script> <script> $(document).ready(function () { $("#MonSelect").change(function(){ var id=$('#MonSelect').val(); $.ajax({ type: "POST", data: {"ID" : id}, url: "traitement.php", dataType: "JSON", success:function(data){ var Text = JSON.parse(data); console.log(Text['nom'], Text['adresse']); $("#input_text").val(Text['nom']); $("#input_text2").val(Text['adresse']); } }); }); }); </script> </head> <body> <select name="MonSelect" id="MonSelect" > <option value=""selected="selected"><-- Choix Code --> </option> <option value="1">Test</option> </select> <input name="input_text" type="text" id="input_text" value="" size="30" /> <input name="input_text2" type="text" id="input_text2" value="" size="10" /> </body> </html>
la page de traitement :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php $database_Consult_ext = "xxx"; $Consult_ext = mysql_connect("127.0.0.1", "xxx", "xxx"); $ID = $_POST['ID']; mysql_select_db($database_Consult_ext, $Consult_ext); $query_Recordset_Code = "SELECT * FROM test1, test2 WHERE test1.id=test2.id AND test1.id = '$ID'"; $Recordset_Code = mysql_query($query_Recordset_Code, $Consult_ext) or die(mysql_error()); $row_Recordset_Code = mysql_fetch_assoc($Recordset_Code); $totalRows_Recordset_Code = mysql_num_rows($Recordset_Code); echo json_encode($row_Recordset_Code); // le résultat de la requete est envoyé dans un JSON ?>
Moi qui pensais avoir trouvé la solution ... De toute façon, j'étais bloqué à l'étape suivante, je récupère 2 entrées donc je dois mettre en place une boucle ...
Enfin en attendant, ce script fonctionne ...
ça c'est juste contradictoire ...
Ton retour est automatiquement interprété comme un json
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 dataType: "JSON", success:function(data){ var Text = JSON.parse(data);
Donc tu ne peux pas parser un json..
essaye
Code : Sélectionner tout - Visualiser dans une fenêtre à part dataType: "json",
Ma page Developpez - Mon Blog Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag
Venez sur le Chat de Développez !
Effectivement, ça fonctionne ! Le datatype est sensible à la case ...
Du coup, je comprends toujours pas pourquoi FireBug trouvait du JSON dans onglet ...
Bonjour,
Bon du coup, après ton aide et mes différents tests, je me suis rendu compte qu'il allait falloir boucler tout ça pour ce que je voulais ...
Je vais passer le sujet en résolu mais avant juste savoir si le code suivant ne te semble pas trop moche ... Il fonctionne sans souci par contre.
(Je vais adapter le nom des ID, etc... Il s'agit de code de test ...)
essai.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> <script src="js/jquery-latest.js"></script> <script> $(document).ready(function () { $("#MonSelect").change(function () { var id = $('#MonSelect').val(); $.ajax({ type: "POST", data: {"ID": id}, url: "traitement.php", dataType: "json", success: function (data) { for (var i = 0; i < data.length; i += 1) { obj = data[i]; var conteneur = document.getElementById('table_d'); var tr1 = document.createElement('tr'); var td1 = document.createElement('td'); var td2 = document.createElement('td'); var match = document.createElement('input'); var val = document.createElement('input'); match.setAttribute("type", "text"); match.setAttribute("name", "1"); match.setAttribute("value", obj.match); val.setAttribute("type", "text"); val.setAttribute("name", "2"); val.setAttribute("value", obj.val); td1.appendChild(match); td2.appendChild(val); tr1.appendChild(td1); tr1.appendChild(td2); conteneur.appendChild(tr1); } } }); }); }); </script> </head> <body> <select name="MonSelect" id="MonSelect"> <option value=""selected="selected"><-- Choix Code --> </option> <option value="1">Test</option> <option value="2">Bli</option> </select> <table id="table_d"><table> </body> </html>
traitement.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php $database_Consult_ext = "xxxx"; $Consult_ext = mysql_connect("127.0.0.1", "xxx", "xxx"); $ID = $_POST['ID']; mysql_select_db($database_Consult_ext, $Consult_ext); $query_Recordset_Code = "SELECT * FROM test1, test2 WHERE test1.id=test2.id AND test1.id = '$ID'"; $Recordset_Code = mysql_query($query_Recordset_Code, $Consult_ext) or die(mysql_error()); while ($row = mysql_fetch_assoc($Recordset_Code)) { $row_Recordset_Code[] = $row; } echo json_encode($row_Recordset_Code); // le résultat de la requete est envoyé dans un JSON ?>
Merci à vous ! ;-)
Ah si, c'est affreux...
Déjà, puisque tu utilises jQuery, fais-le jusqu'au bout.
Plutôt que ta boucle for, utilises $.each(data, function(index, valeur){...}.
Ensuite, jQuery permet de créer facilement des éléments
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var $input = $('<input>', { type: 'text', // toutes les paires attribut / valeur que tu veux });
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
J'ai mis un peu de temps, ci-joint le bon code! Merci
Code js : Sélectionner tout - Visualiser dans une fenêtre à part
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 $(document).ready(function () { $("#MonSelect").selectmenu({ change:function () { var id = $('#MonSelect').val(); $.ajax({ type: "POST", data: {"ID": id}, url: "traitement.php", dataType: "json", success: function (data) { $('#table_d').empty(); $.each(data, function (index, valeur) { var input_match = $('<input>', { type: 'text', value: valeur.match }); var input_val = $('<input>', { type: 'text', value: valeur.val }); var row = $("<tr />"); $("#table_d").append(row); row.append($("<td class='test'>" + input_match.val() + "</td>")); row.append($("<td class='test'>" + input_val.val() + "</td>")); }); } }); } }); });
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager