Renvoyer les donnees de la requete sous le format JSON [Résolu]

EnguerrandP 295 Messages postés vendredi 26 avril 2013Date d'inscription 15 juillet 2015 Dernière intervention - 3 juil. 2014 à 15:36 - Dernière réponse : EnguerrandP 295 Messages postés vendredi 26 avril 2013Date d'inscription 15 juillet 2015 Dernière intervention
- 4 juil. 2014 à 09:54
Bonjour,
Voila mon problème je souhaite utiliser un plugin JQuery pour l'autocomplete de mes select mes apparemment il faut que les données soit renvoyer sous format JSON pour que le plugin marche.

Voila mon code:
<?php
 include('connexion.php');
 
 $sql = "SELECT  labtbl_serial_numbers.INJECTOR_ID,
        labtbl_serial_numbers.INJECTOR_NUMBER,
     labtbl_serial_numbers.Version
   FROM labtbl_serial_numbers 
   ORDER BY labtbl_serial_numbers.INJECTOR_NUMBER;";
 $result = mysql_query($sql)or die("Request error");
     while ($row=mysql_fetch_assoc($result))
    {
     echo "<option value=\"".$row['INJECTOR_ID']."\">".$row['INJECTOR_NUMBER']."".'_V.'."".$row['Version']."</option>\n"; 
    }
 ?>

Comment je peut faire pour que le résultat soit sous le format JSON?
J'ai essayer comme ceci mais sa ne marche pas>
<?php
 include('connexion.php');
 
 $sql = "SELECT  labtbl_serial_numbers.INJECTOR_ID,
        labtbl_serial_numbers.INJECTOR_NUMBER,
     labtbl_serial_numbers.Version
   FROM labtbl_serial_numbers 
   ORDER BY labtbl_serial_numbers.INJECTOR_NUMBER;";
 $result = mysql_query($sql)or die("Request error");
   echo "["
     while ($row=mysql_fetch_assoc($result))
    {
     echo "{value : ".$row['INJECTOR_ID'].",text : ".$row['INJECTOR_NUMBER']."".'_V.'."".$row['Version']."},"; 
    }
    echo "]"
 ?>


Merci

Merci et que le café soit avec vous.
Afficher la suite 

6 réponses

Répondre au sujet
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 3 juil. 2014 à 16:22
+1
Utile
5
Bonjour,

Normalement tu ne renvoies pas les balises OPTION ...

Tu as juste à renvoyer le tableau du résultat.

 $result = mysql_query($sql)or die("Request error");
 return jston_encode($result); 



Cette réponse vous a-t-elle aidé ?  
EnguerrandP 295 Messages postés vendredi 26 avril 2013Date d'inscription 15 juillet 2015 Dernière intervention - 3 juil. 2014 à 16:39
Bonjour,
J'ai une erreur avec json_encode
json_encode():type is unsupported, encoded as null

Es ce que je doit modifier $result ??
Je ne comprend pas pourquoi je n'arrive pas a utiliser les plugin: jquery.sexy et dhtmlx
EnguerrandP 295 Messages postés vendredi 26 avril 2013Date d'inscription 15 juillet 2015 Dernière intervention - 3 juil. 2014 à 16:51
Voila comment j'ai modifier mon code maintenant je n'ai plus de message d'erreur mais mon select n'affiche pas les données.
<?php
	include('connexion.php');
	
	$sql = "SELECT  labtbl_serial_numbers.INJECTOR_ID,
				    labtbl_serial_numbers.INJECTOR_NUMBER,
					labtbl_serial_numbers.Version
			FROM labtbl_serial_numbers 
			ORDER BY labtbl_serial_numbers.INJECTOR_NUMBER;";
	$result = mysql_query($sql)or die("Request error");
			  while ($row=mysql_fetch_assoc($result))
				{
					$encode[]=$row;
				}
				echo json_encode($encode);
	?>


Comment je peut faire ?.
jordane45 20553 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - 3 juil. 2014 à 18:35
désolé...
c'est bien json_encode qu'il fallait utiliser...

pour pouvoir t'aider plus...
il faudrait peut être nous montrer ce que tu as comme code Javascript ... non ?
Comment tu utilises les données retournées par ta pages php ??

Autre point... l' Autocomplete... c'est en général pour des INPUT pas des select...
EnguerrandP 295 Messages postés vendredi 26 avril 2013Date d'inscription 15 juillet 2015 Dernière intervention - 4 juil. 2014 à 09:33
Bonjour,
Voila le reste du code du coter de la page html
<html>
<head>
	<title>autocomplete</title>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<link rel="stylesheet" type="text/css" href="../../../codebase/dhtmlxcombo.css"/>
	<script src="../../../codebase/dhtmlxcombo.js"></script>
	<style>
		 td.descr_td {
		 	 padding-right: 50px;
		 	 vertical-align: top;
		 }
	</style>
	<script>
		var myCombo;
		function doOnLoad() {
			myCombo = new dhtmlXCombo("combo_zone", "combo", null, "image");
			myCombo.setImagePath("../common/flags/");
			myCombo.load("../common/data_countries.json");
			myCombo.enableFilteringMode(true);
		}
	</script>

</head>
<body onload="doOnLoad();">
	<h3>autocomplete</h3>
	<div id="combo_zone" style="width:230px;"></div>

</body>
</html>


Et oui ce n'est pas un select mes bien un input qui prend l'apparence d'un select et son fonctionnement grâce a un plugin jquery (dhtmlxCombo_v403_std)
Si vous savez comment il fonctionne sa m'aiderait beaucoup.
EnguerrandP 295 Messages postés vendredi 26 avril 2013Date d'inscription 15 juillet 2015 Dernière intervention - 4 juil. 2014 à 09:54
Bonjour,
voila les dernières modification a mon code:
<?php
	include('connexion.php');
	
	$sql = "SELECT  labtbl_serial_numbers.INJECTOR_ID,
				    labtbl_serial_numbers.INJECTOR_NUMBER,
					labtbl_serial_numbers.Version
			FROM labtbl_serial_numbers 
			ORDER BY labtbl_serial_numbers.INJECTOR_NUMBER;";
	$result = mysql_query($sql)or die("Request error");

			  while ($row=mysql_fetch_assoc($result))
				{
					$encode["options"][]=$row;
				}
				echo json_encode($encode);

	?>


Maintenant firebug me mes bien l'onglet json.
Mon input réagit mes il n'affiche aucune valeur et lorsque j'en sélectionne une il mes comme valeur indéfini.
Merci je vais ouvrir une question dans le forum JavaScript pour se problème et clore celle-ci.
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.