Menu

Liste liées Ajax , php

deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 24 oct. 2017 à 17:32 - Dernière réponse : deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention
- 20 déc. 2017 à 14:23


Bonjour
je voudrais intégrer les listes liées dans mon site web pour faciliter l'insertion des données
bref
j'ai trois table
catégorie
sous_catégorie
et element
 
CREATE TABLE IF NOT EXISTS `categorie` (
  `Id_categorie` int(11) NOT NULL AUTO_INCREMENT,
  `designation_categorie` varchar(100) NOT NULL,
  PRIMARY KEY (`Id_categorie`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

CREATE TABLE IF NOT EXISTS `sous_categorie` (
  `designation_sous_categorie` varchar(100) NOT NULL,
  `id_categorie` int(11) NOT NULL,
  PRIMARY KEY (`designation_sous_categorie`),
  KEY `id_categorie` (`id_categorie`),
  KEY `designation_sous_categorie` (`designation_sous_categorie`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


CREATE TABLE IF NOT EXISTS `element` (
  `Designation_element` varchar(100) NOT NULL,
  `designation_sous_categorie` varchar(100) NOT NULL,
  `code_element` varchar(4) NOT NULL,
  PRIMARY KEY (`Designation_element`,`code_element`),
  KEY `designation_sous_categorie` (`designation_sous_categorie`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;




la page liste.php
<?php
include  'includes\db.php';    
// Vérification des paramètres d'accès au fichier liste.php
if(isset($_GET['go']) || isset($_GET['localite_un']) || isset($_GET['localite_deux'])) {
	// connexion à la base de données
	try {
		$bdd = new PDO('mysql:host=localhost;dbname=localite', 'root', '');
	} catch(Exception $e) {
		exit('Impossible de se connecter à la base de données.');
	}
	
	$json = array();
	
	if(isset($_GET['go'])) {
		// requête qui récupère les localités un
		$requete = "SELECT * FROM localite_un ORDER BY localite_un ASC";
		// exécution de la requête
		$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
		// Création de la liste
		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
			// je remplis un tableau et mettant l'id en index
			$json[$donnees["id_localite_un"]][] = utf8_encode($donnees["localite_un"]);
		}
	}
	elseif(isset($_GET['localite_un'])) {
		// requête qui récupère les localités un
		$requete = "SELECT * FROM localite_deux WHERE id_localite_un = '".$_GET['localite_un']."' ORDER BY localite_deux ASC";
		// exécution de la requête
		$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
		// Création de la liste
		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
			// je remplis un tableau et mettant l'id en index
			$json[$donnees["id_localite_deux"]][] = utf8_encode($donnees["localite_deux"]);
		}
	}
	elseif(isset($_GET['localite_deux'])) {
		// requête qui récupère les localités un
		$requete = "SELECT * FROM localite_trois WHERE id_localite_deux = '".$_GET['localite_deux']."' ORDER BY localite_trois ASC";
		// exécution de la requête
		$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));
		// Création de la liste
		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
			// je remplis un tableau et mettant l'id en index
			$json[$donnees["id_localite_trois"]][] = utf8_encode($donnees["localite_trois"]);
		}
	}
	 // envoi du résultat au success
	echo json_encode($json);
}

?>


page matériel.php ou existe les select

 <script type="text/javascript" src="../bootstrap/js/jquery-3.2.1.js"></script>
   <script src="../bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="../bootstrap/js/liste.js"></script>
   <link rel="stylesheet" href="../bootstrap/css/bootstrap.css">

<!-- catégori-->

<label> les catégories *:</label>
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
          <select class="form-control" name="categorie" id="categorie">
          <option value="">Séléctionner une catégorie</option>';
         </select>
</div>
        <label> les sous  catégories *:</label>

         <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
        <select class="form-control" id="sous_categorie" name="sous_categorie">
          <option value="">Séléctionner une  sous catégorie</option>';
        </select>
        </div>

<!--Element-->

<label> les elements *:</label>
<br>
     <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
  <select class="form-control" name="element" id="element">
 <option value="">Séléctionner un élement</option>

?>
  </select>
</div>




et la page liste.js


// JavaScript Document
$(document).ready(function() {
	var $categorie= $('#categorie');
	var $sous_categorie = $('#sous_categorie');
	var $element = $('#element');

	// chargement de la liste de localité un
	$.ajax({
		url: 'liste.php',
		data: 'go', // on envoie $_GET['go']
		dataType: 'json', // on veut un retour JSON
		success: function(json) {
			$.each(json, function(index, value) {
				// pour chaque noeud JSON
				// on ajoute l option dans la liste
				$('#categorie').append('<option value="'+ index +'">'+ value +'</option>');
			});
		}
	});

	// à la sélection de la localité un dans la liste
	$categorie.on('change', function() {
		var val = $(this).val(); // on récupère la valeur de la localité un
		if(val != '') {
			$sous_categorie.empty(); // on vide la liste de localité deux
			$sous_categorie.append('<option value="">Choisir la sous catégorie</option>');
	
			$.ajax({
				url: 'liste.php',
				data: 'categorie='+ val, // on envoie $_GET['localite_un']
				dataType: 'json',
				success: function(json) {
					$.each(json, function(index, value) {
						$sous_categorie.append('<option value="'+ index +'">'+ value +'</option>');
					});
				}
			});
		}
		else {
			$sous_categorie.empty();
			$sous_categorie.append('<option value="">Choisir la sous catégorie</option>');
			$element.empty(); // on vide la liste de localité deux
			$element.append('<option value="">Choisir element </option>');
		}
	});

	// à la sélection de la localité deux dans la liste
	$sous_categorie.on('change', function() {
		var val = $(this).val(); // on récupère la valeur de la localité deux
		if(val != '') {
			$element.empty(); // on vide la liste de localité trois
			$element.append('<option value="">Choisir element</option>');
			
			$.ajax({
				url: 'liste.php',
				data: 'sous_categorie='+ val, // on envoie $_GET['localite_deux']
				dataType: 'json',
				success: function(json) {
					$.each(json, function(index, value) {
						$element.append('<option value="'+ index +'">'+ value +'</option>');
					});
				}
			});
		}
		else {
			$element.empty();
			$element.append('<option value="">Choisir element</option>');
		}
	});
});




PS: rien n'a été affiché et aucune erreur a été signalé
-Est ce que vous pouvez m'aider ?
Merci bien
Afficher la suite 

Votre réponse

90 réponses

jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 25 oct. 2017 à 11:04
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 25 oct. 2017 à 12:53
Pour l'instant..; commence par faire ce que je t'ai indiqué dans les liens que je t'ai donné.
puis repostes nous le code ainsi modifié.
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 25 oct. 2017 à 12:22
une erreur de syntaxe ; les quottes
ps: rien n'a été affcihé!!
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 26 oct. 2017 à 12:09
voila les modifications demandées
page liste.php


<?php
  include  'includes\db.php'; 


error_reporting(E_ALL);

ini_set('display_errors',TRUE);
ini_set('display_startup_errors',TRUE);
$conn->setattribute(PDO::ATTR_ERRMODE,ERRMODE_EXCEPTION);
$conn->setattribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);

if(isset($_GET['go']) || isset($_GET['categorie']) || isset($_GET['sous_categorie'])) {


	
	$json = array();
	
	if(isset($_GET['go'])) {


try{
$requete = "SELECT * FROM `categorie` order by `designation_categorie` asc";
	
		$resultat = $conn->query($requete) or die(print_r($conn->errorInfo()));
	
		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
			
			$json[$donnees["Id_categorie"]][] = utf8_encode($donnees["designation_categorie"]);
		}
}
catch(Exception $e)
{

	echo "ERREUR!".$e->getmessage();
	echo "Les datas:";
	print_r($donnees);
}
	
	

	}
	elseif(isset($_GET['categorie'])) {

try{
$var_cat=$_GET['categorie'] ;
		$requete = "SELECT * FROM `sous_categorie` WHERE `id_categorie` = ORDER BY  `designation_sous_categorie` ASC";

		$resultat = $conn->query($requete) or die(print_r($conn->errorInfo()));

		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
			
			$json[$donnees["designation_sous_categorie"]][] = utf8_encode($donnees["designation_sous_categorie"]);
		}

}

catch(Exception $e1)
{

	echo "ERREUR!".$e1->getmessage();
	echo "Les datas:";
	print_r($donnees);
}
	}



	elseif(isset($_GET['sous_categorie'])) {


		try{	$var_sous_cat=$_GET['sous_categorie'];
		$requete = "SELECT * FROM `element` WHERE `designation_sous_categorie`=$var_sous_cat  ORDER BY `Designation_element ` ASC";

		$resultat = $conn->query($requete) or die(print_r($conn->errorInfo()));
	
		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {

			$json[$donnees["code_element"]][] = utf8_encode($donnees["Designation_element"]);
		}}

	}

	echo json_encode($json);



catch(Exception $e2)
{

	echo "ERREUR!".$e2->getmessage();
	echo "Les datas:";
	print_r($donnees);
}


}

?>



page materiel.php

include  'includes\db.php';    




<label> les catégories *:</label>
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
          <select class="form-control" name="categorie" id="categorie">
          <option value="">Séléctionner une catégorie</option>';
         </select>
</div>

        <label> les sous  catégories *:</label>

         <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
        <select class="form-control" id="sous_categorie" name="sous_categorie">
          <option value="">Séléctionner une  sous catégorie</option>';
        </select>
        </div>

<!--Element-->

<label> les elements *:</label>
<br>
     <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
  <select class="form-control" name="element" id="element">
 <option value="">Séléctionner un élement</option>

?>
  </select>
</div>
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 5 nov. 2017 à 16:10
Any help !!
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 5 nov. 2017 à 16:16
Dans le code que tu as posté ... il y a un grand nombre d'erreurs..
par exemple :
Tu as mis les lignes :
$conn->setattribute(PDO::ATTR_ERRMODE,ERRMODE_EXCEPTION);
$conn->setattribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);

... mais où est passé le code pour la connexion à la bdd ??

Je t'invite à lire (et à appliquer..) TOUT ce qui se trouve ICI :
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Puis ensuite ceci :
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

Et enfin.. regarde un exemple complet d'ajax que j'ai posté récemment :
http://codes-sources.commentcamarche.net/source/102253-exemple-ajax-en-jquery
Commenter la réponse de jordane45
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 6 nov. 2017 à 10:45
0
Merci
La page materiel.php
<?php
error_reporting(E_ALL);
ini_set('display_errors',TRUE);
ini_set('display_startup_errors',TRUE);
include  'includes\db.php';    
?>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>BST Gestion</title>


   <script type="text/javascript" src="../bootstrap/js/jquery-3.2.1.js"></script>
   <script src="../bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="../bootstrap/js/liste.js"></script>
   <link rel="stylesheet" href="../bootstrap/css/bootstrap.css">


<style>

.user-row {
    margin-bottom: 14px;
}

.user-row:last-child {
    margin-bottom: 0;
}

.dropdown-user {
    margin: 13px 0;
    padding: 5px;
    height: 100%;
}

.dropdown-user:hover {
    cursor: pointer;
}

.table-user-information > tbody > tr {
    border-top: 1px solid rgb(221, 221, 221);
}

.table-user-information > tbody > tr:first-child {
    border-top: 0;
}


.table-user-information > tbody > tr > td {
    border-top: 0;
}
.toppad
{margin-top:20px;
}


</style>

</head>
	<body>
		<?php include 'includes/header.php';?>
		<div class="container">


<label> les catégories *:</label>
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
          <select class="form-control" name="categorie" id="categorie">
          <option value="">Séléctionner une catégorie</option>';
         </select>
</div>

        <label> les sous  catégories *:</label>

         <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
        <select class="form-control" id="sous_categorie" name="sous_categorie">
          <option value="">Séléctionner une  sous catégorie</option>';
        </select>
        </div>

<!--Element-->

<label> les elements *:</label>
<br>
     <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
  <select class="form-control" name="element" id="element">
 <option value="">Séléctionner un élement</option>

?>
  </select>
</div>


</div>

</body>
</html>


Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 6 nov. 2017 à 10:46
0
Merci
page liste.php



<?php

error_reporting(E_ALL);
$conn->setattribute(PDO::ATTR_ERRMODE,ERRMODE_EXCEPTION);
$conn->setattribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);


/* connexion a la base de donnée*/
  include  'includes\db.php'; 


if(isset($_GET['go']) || isset($_GET['categorie']) || isset($_GET['sous_categorie'])) {


	
	$json = array();
	
	if(isset($_GET['go'])) {


try{
$requete = "SELECT * FROM `categorie` order by `designation_categorie` asc";
	
		$resultat = $conn->query($requete) or die(print_r($conn->errorInfo()));
	
		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
			
			$json[$donnees["Id_categorie"]][] = utf8_encode($donnees["designation_categorie"]);
		}
}
catch(Exception $e)
{

	echo "ERREUR!".$e->getmessage();
	echo "Les datas:";
	print_r($donnees);
}
	
	

	}
	elseif(isset($_GET['categorie'])) {

try{
$var_cat=$_GET['categorie'] ;
		$requete = "SELECT * FROM `sous_categorie` WHERE `id_categorie` = ORDER BY  `designation_sous_categorie` ASC";

		$resultat = $conn->query($requete) or die(print_r($conn->errorInfo()));

		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
			
			$json[$donnees["designation_sous_categorie"]][] = utf8_encode($donnees["designation_sous_categorie"]);
		}

}

catch(Exception $e1)
{

	echo "ERREUR!".$e1->getmessage();
	echo "Les datas:";
	print_r($donnees);
}
	}



	elseif(isset($_GET['sous_categorie'])) {


		try{	$var_sous_cat=$_GET['sous_categorie'];
		$requete = "SELECT * FROM `element` WHERE `designation_sous_categorie`=$var_sous_cat  ORDER BY `Designation_element ` ASC";

		$resultat = $conn->query($requete) or die(print_r($conn->errorInfo()));
	
		while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {

			$json[$donnees["code_element"]][] = utf8_encode($donnees["Designation_element"]);
		}}

	}

	echo json_encode($json);



catch(Exception $e2)
{

	echo "ERREUR!".$e2->getmessage();
	echo "Les datas:";
	print_r($donnees);
}









}

?>

deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention > jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 7 nov. 2017 à 11:13
toujours un tableau vide
en plus aucune interaction avec la page materiel.php ou se trouve le code HTML et les id pour Js
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 7 nov. 2017 à 12:20
Dans ton script liste.php (celui appelé par l'ajax, )
peux tu, dès le début du script faire :
<?php
// debut du fichier

echo json_encode($_POST);
exit();


Côté Javascript, tu peux aussi ajouter un console.log dans les SUCCESS de tes appels Ajax
success: function(json) {
               console.log(json);



Puis me montrer (via une capture écran) TOUT ce que retourne la CONSOLE de ton navigateur lorsque tu appelles tes fonctions js

NB : Si tu es sur googleChome, tu dois installer le plugin Ajax debugger
https://chrome.google.com/webstore/detail/ajax-debugger/lgfefckpdealogpcfjdhinecfbcgedam

NB² : Dans la console... Pour les lignes AJAX , pense à "déplier" pour voir le contenu
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 7 nov. 2017 à 10:41
ok
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 7 nov. 2017 à 13:37
toujours un tableau vide afficher
dans le consule "aucune erreur n'est t'affiché"
NB : j'arrive pas a vous montrez la capture d’Écran , j'ai pas trouvé l'icone img
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 7 nov. 2017 à 13:48
Pour avoir l'icône img... Il faut répondre et non pas commenter
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 7 nov. 2017 à 14:12
0
Merci
Voila la capture

jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 7 nov. 2017 à 14:30
Y'a peu-être des choses à cocher non ?
Comme par exemple : log XmlHttpRequest ... pour debug de l'ajax... ça peut aider !
Tu peux aussi cocher "preserve log".

Et au passage... tu as bien ajouté des console.log comme je te l'ai demandé ???
Si oui...ils devraient apparaitre....dans la console...

Bien entendu.. tu regardes la console après avoir fais des choix dans tes listes déroulantes ..
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 27 nov. 2017 à 11:54
0
Merci
Bonjour ,
page liste.js


$(document).ready(function() {

	$("#form-categorie").change(function() {
		var spec = $(this).val();

		$.ajax({
			type : "POST",
			url: "liste.[/php/phpintro.php3 php]?categorie_id=" + spec,
			cache: false
		}).done(function(html) {
			var data = $.parseJSON(html);
			$("#form_sous_categorie").html("");
			data.forEach( function(ent) {
				$("#form_sous_categorie").prepend("<option value=\""+ent.designation_sous_categorie+"\">"+ent.designation_sous_categorie+"</option>");
			});
		});
	});
	
	$("#form_sous_categorie").change(function() {
		var spec = $(this).val();

		$.ajax({
			url: "liste.php?sous_categorie_id=" + spec,
			cache: false
		}).done(function(html) {
			var data = $.parseJSON(html);
			$("#form_element").html("");
			data.forEach(function(ent) {
				$("#form_element").prepend("<option value=\""+ent.code_element+"\">"+ent.Designation_element+"</option>");
			});
		});
	});
});









page liste.php



<?php
echo json_encode($_POST);
exit();

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';

success: function(json) {
               console.log(json);


// Vérifier que l'id du catégorie a bien eté envoyé
if((!empty($_GET['categorie_id'])) && (is_numeric($_GET['categorie_id']))) {
	$spec = $_GET['categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$results = array();
	
	// Séléction les catégories

	$requete= mysql_query("SELECT * FROM `sous_categorie` WHERE `id_categorie`='".$spec."'") or die (mysql_error());
	while($data = mysql_fetch_assoc($requete)) {
		$results[] = $data;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}

// Vérifier que l'id den la sous catégorie a bien été envoyé
else if((!empty($_GET['sous_categorie_id'])) && (is_numeric($_GET['sous_categorie_id']))) {
	$spec = $_GET['sous_categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$results = array();
	
	// Séléction les élements  qui concernent la sous catégorie choisi
	$requete= mysql_query("SELECT * FROM `element` WHERE `designation_sous_categorie`='".$spec."'") or die (mysql_error());
	while($data = mysql_fetch_assoc($requete)) {
		$results[] = $data;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}
?>




materiel.php

<label> les catégories *:</label>
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
          <select class="form-control" name="categorie" id="form-categorie">
          <option value="">Séléctionner une catégorie</option>';
		      <?php 
			  $requete_liste= "SELECT * FROM `categorie` order by `designation_categorie` asc";
			  $resultat_liste = $conn->query($requete_liste) or die ('Erreur '.$requete_liste.' '.$conn->error);
			  while($co = mysql_fetch_array($resultat_liste)){
    	$id_categorie=$co['id_categorie'];
		$designation_categorie=$co['designation_categorie'];?>
		 <option value="<?php echo $id_categorie;?>"><?php echo $designation_categorie;?></option>
         <?php }?>
         </select>
</div>

        <label> les sous  catégories *:</label>

         <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
        <select class="form-control" id="form_sous_categorie" name="sous_categorie">
          <option value="">Séléctionner une  sous catégorie</option>';
        </select>
        </div>

<!--Element-->

<label> les elements *:</label>
<br>
     <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
  <select class="form-control" name="element" id="form_element">
 <option value="">Séléctionner un élement</option>


  </select>
</div>



les liens


   <script type="text/javascript" src="../bootstrap/js/jquery-3.2.1.js"></script>
   <script src="../bootstrap/js/bootstrap.js"></script>
   <script type="text/javascript" src="../bootstrap/js/liste.js"></script>
   <link rel="stylesheet" href="../bootstrap/css/bootstrap.css">


Erreur affiché :
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention > jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 27 nov. 2017 à 14:11
pour afficher dans la consule les variable de javascript
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 27 nov. 2017 à 15:46
C'est du code JAVASCRIPT .... il faut donc le mettre dans ton JAVASCRIPT et non dans le PHP !!!
Il faut donc le mettre dans le .done
}).done(function(html) {
   console.log(html);
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention > jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 27 nov. 2017 à 16:04
méme erreur s'affiche :
Uncaught SyntaxError: Unexpected token (
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 27 nov. 2017 à 16:26
Montre ton code modifié
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 27 nov. 2017 à 16:28
Et au passage ... peux tu m'expliquer comment tu as pu passer de PDO dans ton premier message à l'ancienne extension mysql dans ton précedent message ???
Sachant que dans d'autres de tes questions tu étais en mysqli ......
Donc... commence aussi par nous indiquer QUELLE EXTENSION MYSQL tu utilises .... et tiens t'en !
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 28 nov. 2017 à 10:08
0
Merci
j'utilise MySqli

liste.php

<?php
echo json_encode($_POST);
exit();

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


// Vérifier que l'id du catégorie a bien eté envoyé
if((!empty($_GET['categorie_id'])) && (is_numeric($_GET['categorie_id']))) {
	$spec = $_GET['categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$results = array();
	
	// Séléction les catégories

	$requete_sous_cat= "SELECT * FROM `sous_categorie` WHERE `id_categorie`='".$spec."'";
	$resultat_categorie= $conn->query($requete_sous_cat) or die ('Erreur '.$requete_sous_cat.' '.$conn->error);

	while($data = mysql_fetch_array($resultat_categorie)) {
		$results[] = $data;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}

// Vérifier que l'id den la sous catégorie a bien été envoyé
else if((!empty($_GET['sous_categorie_id'])) && (is_numeric($_GET['sous_categorie_id']))) {
	$spec = $_GET['sous_categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$results = array();
	
	// Séléction les élements  qui concernent la sous catégorie choisi
	$requete_element= "SELECT * FROM `element` WHERE `designation_sous_categorie`='".$spec."'";
	$resultat_element= $conn->query($requete_element) or die ('Erreur '.$requete_element.' '.$conn->error);
	while($data = mysql_fetch_assoc($resultat_element)) {
		$results[] = $data;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}
?>



deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 28 nov. 2017 à 10:08
liste.js
success: function(html) {
               console.log(html);


$(document).ready(function() {

	$("#form-categorie").change(function() {
		var spec = $(this).val();

		$.ajax({
			type : "POST",
			url: "liste.php?categorie_id=" + spec,
			cache: false
		}).done(function(html) {
			var data = $.parseJSON(html);
			$("#form_sous_categorie").html("");
			data.forEach( function(ent) {
				$("#form_sous_categorie").prepend("<option value=\""+ent.designation_sous_categorie+"\">"+ent.designation_sous_categorie+"</option>");
			});
		});
	});
	
	$("#form_sous_categorie").change(function() {
		var spec = $(this).val();

		$.ajax({
			url: "liste.php?sous_categorie_id=" + spec,
			cache: false
		}).done(function(html) {
			var data = $.parseJSON(html);
			$("#form_element").html("");
			data.forEach(function(ent) {
				$("#form_element").prepend("<option value=\""+ent.code_element+"\">"+ent.Designation_element+"</option>");
			});
		});
	});
});

jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 28 nov. 2017 à 10:22
Tu utilises mysqli ????
Dans ce cas.. que font des instructions telle que mysql_fetch_array dans ton code ??
Commence par nous présenter un code conforme... on verra ensuite !
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - Modifié par jordane45 le 28/11/2017 à 10:31
0
Merci


<?php
echo json_encode($_POST);
exit();

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


// Vérifier que l'id du catégorie a bien eté envoyé
if((!empty($_GET['categorie_id'])) && (is_numeric($_GET['categorie_id']))) {
 $spec = $_GET['categorie_id'];
 
 // Tableau des resultats initialisé a vide
 $results = array();
 
 // Séléction les catégories

 $requete_sous_cat= "SELECT * FROM `sous_categorie` WHERE `id_categorie`='".$spec."'";
 $resultat_categorie= $conn->query($requete_sous_cat) or die ('Erreur '.$requete_sous_cat.' '.$conn->error);

 while($data = mysql_fetch_assoc(($resultat_categorie)) {
  $results[] = $data;
 }
 
 // Encoder a l'aide de json avant de renvoyer
 echo json_encode($results);
}

// Vérifier que l'id den la sous catégorie a bien été envoyé
else if((!empty($_GET['sous_categorie_id'])) && (is_numeric($_GET['sous_categorie_id']))) {
 $spec = $_GET['sous_categorie_id'];
 
 // Tableau des resultats initialisé a vide
 $results = array();
 
 // Séléction les élements  qui concernent la sous catégorie choisi
 $requete_element= "SELECT * FROM `element` WHERE `designation_sous_categorie`='".$spec."'";
 $resultat_element= $conn->query($requete_element) or die ('Erreur '.$requete_element.' '.$conn->error);
 while($data = mysql_fetch_assoc($resultat_element)) {
  $results[] = $data;
 }
 
 // Encoder a l'aide de json avant de renvoyer
 echo json_encode($results);
}
?>


EDIT : AJOUT DU LANGAGE dans les balises de code

Commenter la réponse de deep_sea
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 28 nov. 2017 à 10:33
0
Merci
Dans ton fichier JS ....
Tu as collé
success: function(html) {
               console.log(html);


N'IMPORTE OU !!!!

Tu supprimes ces lignes ....

Et tu écris dans les .DONE ceci:
console.log(html);

et c'est tout !
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 28 nov. 2017 à 11:11




$(document).ready(function() {

	$("#form-categorie").change(function() {
		var spec = $(this).val();

		$.ajax({
			type : "POST",
			url: "liste.php?categorie_id=" + spec,
			cache: false
		}).done(function([/html/htmlintro.php3 html]) {
			<gras>console.log(html);</gras>
			var data = $.parseJSON(html);
			$("#form_sous_categorie").html("");
			data.forEach( function(ent) {
				$("#form_sous_categorie").prepend("<option value=\""+ent.designation_sous_categorie+"\">"+ent.designation_sous_categorie+"</option>");
			});
		});
	});
	
	$("#form_sous_categorie").change(function() {
		var spec = $(this).val();

		$.ajax({
			url: "liste.php?sous_categorie_id=" + spec,
			cache: false
		}).done(function(html) {
		<gras>	console.log(html);</gras>
			var data = $.parseJSON(html);
			$("#form_element").html("");
			data.forEach(function(ent) {
				$("#form_element").prepend("<option value=\""+ent.code_element+"\">"+ent.Designation_element+"</option>");
			});
		});
	});
});

jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 28 nov. 2017 à 11:15
1 - Il serait bien que tu utilises CORRECTEMENT les balises de code (en y précisant le LANGAGE ) histoire qu'on puisse avoir la coloration syntaxique !
Explications ici : http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Ce n'est pas le première fois que je te le dis !!!

2 - Maintenant que tu as corrigé ton code .... as tu toujours une erreur ??
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention > jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 28 nov. 2017 à 11:19
oui la méme erreur
Uncaught SyntaxError: Unexpected token (
Commenter la réponse de jordane45
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - Modifié par deep_sea le 28/11/2017 à 14:47
0
Merci


aucune erreur , aucun résultat :(
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 28 nov. 2017 à 15:20
Essayes ça :
$(document).ready(function() {
	console.log('document ready !');
	$("#form-categorie").change(function() {
		var spec = $(this).val();
		console.log('form-categorie CHANGE : ' + spec);
		$.ajax({
			type : "POST",
			url: "liste.php?categorie_id=" + spec,
			cache: false
		}).done(function([/html/htmlintro.php3 html]) {
			<gras>console.log(html);</gras>
			var data = $.parseJSON(html);
			$("#form_sous_categorie").html("");
			data.forEach( function(ent) {
				$("#form_sous_categorie").prepend("<option value=\""+ent.designation_sous_categorie+"\">"+ent.designation_sous_categorie+"</option>");
			});
		}).fail(function (jqXHR, textStatus) {
			console.log('ERREUR AJAX !');
			console.log(textStatus);
		});
	});
	
	$("#form_sous_categorie").change(function() {
		var spec = $(this).val();
		console.log('form_sous_categorie CHANGE : ' + spec);
		$.ajax({
			url: "liste.php?sous_categorie_id=" + spec,
			cache: false
		}).done(function(html) {
			console.log(html);
			var data = $.parseJSON(html);
			$("#form_element").html("");
			data.forEach(function(ent) {
				$("#form_element").prepend("<option value=\""+ent.code_element+"\">"+ent.Designation_element+"</option>");
			});
		}).fail(function (jqXHR, textStatus) {
			console.log('ERREUR AJAX !');
			console.log(textStatus);
		});
	});
});

deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 10 déc. 2017 à 10:21
Erreur

Uncaught SyntaxError: Invalid regular expression flags
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 10 déc. 2017 à 11:03
A quelle ligne ?
Ca doit te le dire dans la console
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 10 déc. 2017 à 11:19
ligne 10
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 10 déc. 2017 à 12:49
Et elle contient quoi la ligne 10 ?
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 10 déc. 2017 à 14:07
0
Merci
Elle contient cette ligne
}).done(function(html) {
oui il y'a affichage de document ready !! --> pas d'erreur de syntaxe dans le code mais ça ne fonctionne pas
une autre erreur de syntaxe apparaît dans liste.php
Parse error: syntax error, unexpected '{' , on line 25
le problème j'ai vérifié tous les accolades mais j'ai pas trouvée



<?php
echo json_encode($_POST);
exit();

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


// Vérifier que l'id du catégorie a bien eté envoyé
if((!empty($_GET['categorie_id'])) && (is_numeric($_GET['categorie_id']))) {
	$spec = $_GET['categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$results = array();
	
	// Séléction les catégories

	$requete_sous_cat= "SELECT * FROM `sous_categorie` WHERE `id_categorie`='".$spec."'";
	$resultat_categorie= $conn->query($requete_sous_cat) or die ('Erreur '.$requete_sous_cat.' '.$conn->error);

	while($data = mysql_fetch_assoc(($resultat_categorie)) {
		$results[] = $data;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}

// Vérifier que l'id den la sous catégorie a bien été envoyé
else if((!empty($_GET['sous_categorie_id'])) && (is_numeric($_GET['sous_categorie_id']))) {
	$spec = $_GET['sous_categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$resultat_element = array();
	
	// Séléction les élements  qui concernent la sous catégorie choisi
	$requete_element= "SELECT * FROM `element` WHERE `designation_sous_categorie`='".$spec."'";
	$resultat_element= $conn->query($requete_element) or die ('Erreur '.$requete_element.' '.$conn->error);
	while($data_element = mysql_fetch_assoc($resultat_element)) {
		$resultat_element[] = $data_element;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}
?>



jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 12 déc. 2017 à 12:26
L'erreur se trouve au niveau de ta boucle
while($data = mysql_fetch_assoc(($resultat_categorie)) {
		$results[] = $data;
	}

Tu as des parenthèses en trop .....
De plus.. tu utilises mysql_fetch ... sauf que .. ben ton code il semble être en PDO ou en MYSQLI (OBJET ).
Tu n'utilises donc pas la bonne syntaxe !!!!
j'utilise mysqli
a chaque fois je fais la même bêtise
Liste.php

<?php
echo json_encode($_POST);
exit();

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


// Vérifier que l'id du catégorie a bien eté envoyé
if((!empty($_GET['categorie_id'])) && (is_numeric($_GET['categorie_id']))) {
	$spec = $_GET['categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$results = array();
	
	// Séléction les catégories

	$requete_sous_cat= "SELECT * FROM `sous_categorie` WHERE `id_categorie`='".$spec."'";
	$resultat_categorie= $conn->query($requete_sous_cat) or die ('Erreur '.$requete_sous_cat.' '.$conn->error);

	while($data =mysqli_fetch_assoc($resultat_categorie)) {
		$results[] = $data;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}

// Vérifier que l'id den la sous catégorie a bien été envoyé
else if((!empty($_GET['sous_categorie_id'])) && (is_numeric($_GET['sous_categorie_id']))) {
	$spec = $_GET['sous_categorie_id'];
	
	// Tableau des resultats initialisé a vide
	$resultat_element = array();
	
	// Séléction les élements  qui concernent la sous catégorie choisi
	$requete_element= "SELECT * FROM `element` WHERE `designation_sous_categorie`='".$spec."'";
	$resultat_element= $conn->query($requete_element) or die ('Erreur '.$requete_element.' '.$conn->error);
	while($data_element = mysqli_fetch_assoc($resultat_element)) {
		$resultat_element[] = $data_element;
	}
	
	// Encoder a l'aide de json avant de renvoyer
	echo json_encode($results);
}
?>




pas de résultat !!
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 12 déc. 2017 à 13:42
egorie= $conn->query($
=>Style OBJET


($data =mysqli_fetch_assoc($ 
==> style PROCEDURAL

Il faut utiliser la même façon de coder dans TOUS les cas !
 $resultat_element->fetch_assoc())


Faut vraiment que tu prennes le temps de te relire ...
d'accord !

<?php
echo json_encode($_POST);
exit();

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


// Vérifier que l'id du catégorie a bien eté envoyé
if((!empty($_GET['categorie_id'])) && (is_numeric($_GET['categorie_id']))) {
 $spec = $_GET['categorie_id'];

 // Tableau des resultats initialisé a vide
 $results = array();

 // Séléction les catégories

 $requete_sous_cat= "SELECT * FROM `sous_categorie` WHERE `id_categorie`='".$spec."'";
 $resultat_categorie=mysqli_query($conn,$requete_sous_cat);


 while($data =mysqli_fetch_assoc($resultat_categorie)) {
  $results[] = $data;
 }
 
 // Encoder a l'aide de json avant de renvoyer
 echo json_encode($results);
}

// Vérifier que l'id den la sous catégorie a bien été envoyé
else if((!empty($_GET['sous_categorie_id'])) && (is_numeric($_GET['sous_categorie_id']))) {
 $spec = $_GET['sous_categorie_id'];
 
 // Tableau des resultats initialisé a vide
 $resultat_element = array();
 
 // Séléction les élements  qui concernent la sous catégorie choisi
 $requete_element= "SELECT * FROM `element` WHERE `designation_sous_categorie`='".$spec."'";
    $resultat_element=mysqli_query($conn,$requete_element);
 while($data_element = mysqli_fetch_assoc($resultat_element)) {
  $resultat_element[] = $data_element;
 }
 
 // Encoder a l'aide de json avant de renvoyer
 echo json_encode($results);
}
?>



Commenter la réponse de deep_sea
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 13 déc. 2017 à 10:25
0
Merci
Que contient ton fichier 'includes\db.php' ?

Ensuite... tu as encore des erreurs de parenthèses dans tes IF ...
if((!empty($_GET['categorie_id'])) && (is_numeric($_GET['categorie_id']))) {

Regarde bien cette ligne....

Ca devrait être :
if( !empty($_GET['categorie_id'])  && is_numeric($_GET['categorie_id']) ) {


Qui.. plus proprement ... et si tu avais appliqué le contenu des liens que je t'ai déjà donné concernant l'écriture PROPRE du code tu aurais appliqué... devrais se faire comme ceci :
$categorie_id= !empty($_GET['categorie_id']) && is_numeric($_GET['categorie_id']) ? $_GET['categorie_id'] : NULL;
if($categorie_id){



Mais là encore.. on pourrait améliorer l'écriture de ton code...
Regarde ce que donnes ceci:

<?php


//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


//récupération PROPRE des variables AVANT de les utiliser:
$categorie_id = !empty($_POST['categorie_id']) && is_numeric($_POST['categorie_id']) ? $_POST['categorie_id'] : NULL;
$sous_categorie_id = !empty($_POST['sous_categorie_id']) && is_numeric($_POST['sous_categorie_id']) ? $_POST['sous_categorie_id'] : NULL;

$results = array();


if($categorie_id ){
	$fieldQuery = 'id_categorie';
	$spec = $categorie_id;
}elseif($sous_categorie_id){
	$fieldQuery = 'designation_sous_categorie';
	$spec = $sous_categorie_id;
}else{
	$results['error'] = "Aucune catégorie ou sous-catégorie envoyée...";	
	$results['post'] = $_POST;
	$spec = NULL;
}

if($spec){
	$sql = "SELECT * 
		 FROM `sous_categorie` 
		 WHERE ".$fieldQuery."='".$spec."'";

	$resultat_query = mysqli_query($conn,$sql);

	while($data =mysqli_fetch_assoc($resultat_query)) {
	  $results[] = $data;
	 }
 
}

 // Encoder a l'aide de json avant de renvoyer
 echo json_encode($results);

?>




NB : Tu utilises du POST ..et non du GET !
J'ai rectifié dans ton code.
Commenter la réponse de jordane45
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 13 déc. 2017 à 10:38
0
Merci


le tableau est vide et pas d'affichage !!!
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 13 déc. 2017 à 10:45
Que donnes ceci :
côté PHP :

<?php

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


//récupération PROPRE des variables AVANT de les utiliser:
$categorie_id = !empty($_POST['categorie_id'])  ? $_POST['categorie_id'] : NULL;
$sous_categorie_id = !empty($_POST['sous_categorie_id']) ? $_POST['sous_categorie_id'] : NULL;

$results = array();
$results['DEBUG'] = array('POST'=>$_POST,'GET'=>$_GET);

if($categorie_id ){
	$fieldQuery = 'id_categorie';
	$spec = $categorie_id;
}elseif($sous_categorie_id){
	$fieldQuery = 'designation_sous_categorie';
	$spec = $sous_categorie_id;
}else{
	$results['error'] = "Aucune catégorie ou sous-catégorie envoyée...";	
	$results['post'] = $_POST;
	$spec = NULL;
}

if($spec){
	$sql = "SELECT * 
		 FROM `sous_categorie` 
		 WHERE ".$fieldQuery."='".$spec."'";

	$resultat_query = mysqli_query($conn,$sql);
	$results['query'] = $sql; 
	while($data =mysqli_fetch_assoc($resultat_query)) {
	  $results['datas'] = $data;
	}
 
}

 // Encoder a l'aide de json avant de renvoyer
 echo json_encode($results);
exit();
?>



Et puis.. tu pourrais nous montrer ton code JS (corrigé suite à ma réponse du : http://www.commentcamarche.net/forum/affich-34951536-liste-liees-ajax-php#47
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 13 déc. 2017 à 10:51
pour liste.php le même affichage , un tableau vide
le code de liste.js
$(document).ready(function() {

			console.log('document ready !');
			
			
			
	$("#form-categorie").change(function() {
	
	var spec = $(this).val();
		console.log('form-categorie CHANGE : ' + spec);
		$.ajax({
			type : "POST",
			url: "liste.php",
                        data : {categorie_id:spec},
                        dataType: 'json'
		}).done(function(reponse) {
                   console.log(reponse);
		});
	});


	/*** sous catégorie****/
	
		
	$("#form_sous_categorie").change(function() {
		var spec = $(this).val();
		console.log('form_sous_categorie CHANGE : ' + spec);
		$.ajax({
			url: "liste.php?sous_categorie_id=" + spec,
			cache: false
		}).done(function(html) {
			console.log(html);
			var data = $.parseJSON(html);
			$("#form_element").html("");
			data.forEach(function(ent) {
				$("#form_element").prepend("<option value=\""+ent.code_element+"\">"+ent.Designation_element+"</option>");
			});
		}).fail(function (jqXHR, textStatus) {
			console.log('ERREUR AJAX !');
			console.log(textStatus);
		});
	});
	
	
	
	
});
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 13 déc. 2017 à 11:12
Quand tu dis : "pour liste.php le même affichage , un tableau vide " ... dis voir .. tu le regarde comment ???
Tu n'essayes pas de l'ouvrir directement hein ??
Tu passes par le code javascript on est bien d'accord ????
Et c'est UNIQUEMENT dans la console du navigateur que tu devrais en voir le résultat !

Sachant que ton JS .. tu n'as corrigé qu'une seule fonction sur les deux....
Faut également corriger au niveau de ton autre fonction
$("#form_sous_categorie").change(function() {
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - Modifié par deep_sea le 13/12/2017 à 14:26
0
Merci
voici le code j'ai mis le code de la 3eme liste en commentaire , car j'ai rencontré des erreurs concernant ata.forEach(function(ent) {

voici le code de liste.js
liste.js

$(document).ready(function() {
   console.log('document ready !');   
 $("#form-categorie").change(function() {
 var spec = $(this).val();
  console.log('form-categorie CHANGE : ' + spec);
  $.ajax({
   type : "POST",
   url: "liste.php",
                        data : {categorie_id:spec},
                        dataType: 'json'
  }).done(function(reponse) {
                   console.log(reponse);
  });
 });
 /*** sous catégorie****/
   $("#form_sous_categorie").change(function() {
  var spec = $(this).val();
  console.log('form_sous_categorie CHANGE : ' + spec);
  $.ajax({
   type : "POST",
   url: "liste.php?sous_categorie_id=" + spec,
                        dataType: 'json'
  }).done(function(reponse) {
                   console.log(reponse);
   var data = $.parseJSON(reponse);
   });
  }); 
   
 /**** element ***/
    
  /* $("#form_element").html("");
   data.forEach(function(ent) {
    $("#form_element").prepend("<option value=\""+ent.code_element+"\">"+ent.Designation_element+"</option>");
   });
  */
 
 
});
 


pour l'affichage oui j'ai passé par la page matériel.php puis j'ai constaté que ya pas une erreur dans le code liste.js
voici la capture d'écran

jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 14 déc. 2017 à 13:51
c a d il n' ya pas la récupération de la liste catégorie pour pouvoir faire le choix

Pourtant, c'est le code suivant qui est sensé l'alimenté cette liste :
 <select class="form-control" name="categorie" id="form-categorie">
          <option value="">Séléctionner une catégorie</option>';
        <?php 
     $requete_liste= "SELECT * FROM `categorie` order by `designation_categorie` asc";
     $resultat_liste = $conn->query($requete_liste) or die ('Erreur '.$requete_liste.' '.$conn->error);
     while($co = mysql_fetch_array($resultat_liste)){
     $id_categorie=$co['id_categorie'];
  $designation_categorie=$co['designation_categorie'];?>
   <option value="<?php echo $id_categorie;?>"><?php echo $designation_categorie;?></option>
         <?php }?>


As tu vu qu'encore une fois... tu as mélangé du mysqli avec du vieux mysql ???
Si tu n'es pas capable de te relire.... va falloir aller prendre des cours de lecture....
Une fois par oubli ça peut arriver ... mais 50 fois de suite... c'est franchement grave.....

Donc.... remet au propre TOUT ton code avant de poursuivre.
Sinon on ne s'en sortira jamais....
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 14 déc. 2017 à 15:12
ouii , j'ai ce problème !! je mélange entre mysqli et l'autre

<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
          <select class="form-control" name="categorie" id="form-categorie">
          <option value="">Séléctionner une catégorie</option>';
		      <?php 
			  $requete_liste= "SELECT * FROM `categorie` order by `designation_categorie` asc";
              $resultat_liste=mysqli_query($conn, $requete_liste);
			
			  while($co = mysqli_fetch_assoc($resultat_liste)){
    	$id_categorie=$co['id_categorie'];
		$designation_categorie=$co['designation_categorie'];?>
		 <option value="<?php echo $id_categorie;?>"><?php echo $designation_categorie;?></option>
         <?php }?>
         </select>
	
</div>
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 14 déc. 2017 à 15:18
Et là .. ça marche ou pas ?
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 14 déc. 2017 à 15:19
bon la liste catégorie a été récupérer mais je n'arrive pas a faire le choix je pense le probléme d'envoi de l'Id _catégorie
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 14 déc. 2017 à 15:50
Tu as quoi dans la console lorsque tu fais un choix dans ta liste de catégories ?
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 14 déc. 2017 à 16:17
0
Merci
l'affichage "Aucune catégorie ou sous-catégorie envoyée"
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 14 déc. 2017 à 16:26
Tu pourrais déplier le DEBUG (en cliquant sur la petite fleche devant ) et nous en montrer le contenu ?
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 14 déc. 2017 à 16:28
Affiche également le code source "généré" de ta page web (depuis ton navigateur lorsque la page est affichée, CTRL + U ) et donne nous la partie qui correspond à la liste déroulante catégories.
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 17 déc. 2017 à 09:55
le code source généré

<!-- catégorie-->
<label> les catégories *:</label>
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
          <select class="form-control" name="categorie" id="form-categorie">
          <option value="">Séléctionner une catégorie</option>';
        <br />
<b>Notice</b>:  Undefined index: id_categorie in <b></b> on line <b>190</b><br />
   <option value="">Accessoire cuisine</option>
         <br />
<b>Notice</b>:  Undefined index: id_categorie in <b></b> on line <b>190</b><br />
   <option value="">Fourniture de bureau</option>
         <br />
<b>Notice</b>:  Undefined index: id_categorie in <b></b> on line <b>190</b><br />
   <option value="">Informatique et High-Tech</option>
         <br />
<b>Notice</b>:  Undefined index: id_categorie in <b></b> on line <b>190</b><br />
   <option value="">Ouvrage</option>
         <br />
<b>Notice</b>:  Undefined index: id_categorie in <b></b> on line <b>190</b><br />
   <option value="">Service bureau</option>
         <br />
<b>Notice</b>:  Undefined index: id_categorie in <b></b> on line <b>190</b><br />
   <option value="">Siège et mobilier de bureau</option>
                  </select>
 
</div>
        <label> les sous  catégories *:</label>
         <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
        <select class="form-control" id="form_sous_categorie" name="sous_categorie">
          <option value="">Séléctionner une  sous catégorie</option>';
        </select>
        </div>
<!--Element-->
<label> les elements *:</label>
<br>
     <div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-th-list"></i></span>
  <select class="form-control" name="element" id="form_element">
 <option value="">Séléctionner un élement</option>
  </select>
</div>

jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 17 déc. 2017 à 11:21
Tu as lu ce que tu viens dee coller ?
N'as tu pas vu ceci :
Notice</b>: Undefined index: id_categorie in <b></b> on line <b>190</b><br />
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 17 déc. 2017 à 12:06
Sachant que, dans ton premier message tu nous as mis la structure de ta table... et que ton champ c'est :
`Id_categorie` (avec un I majuscule )
Donc ton code devrait être
$id_categorie=$co['Id_categorie'];


C'est pour ça que pour éviter ce genre d'erreur... dans une BDD il est préférable de ne mettre que des minulscules dans le nom des champs... A savoir pour l'avenir...
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 17 déc. 2017 à 16:18
0
Merci
la catégorie est le code catégorie a été récupéré

voici une capture d''écran



quand je clique dans la 2éme liste sous catégorie


voici le code liste.php

<?php

//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
require_once  'includes\db.php';


//récupération PROPRE des variables AVANT de les utiliser:
$categorie_id = !empty($_POST['Id_categorie'])  ? $_POST['Id_categorie'] : NULL;
$sous_categorie_id = !empty($_POST['sous_categorie_id']) ? $_POST['sous_categorie_id'] : NULL;

$results = array();
$results['DEBUG'] = array('POST'=>$_POST,'GET'=>$_GET);

if($categorie_id ){
	$fieldQuery = 'id_categorie';
	$spec = $categorie_id;
}elseif($sous_categorie_id){
	$fieldQuery = 'designation_sous_categorie';
	$spec = $sous_categorie_id;
}else{
	$results['error'] = "Aucune catégorie ou sous-catégorie envoyée...";	
	$results['post'] = $_POST;
	$spec = NULL;
}

if($spec){
	$sql = "SELECT * 
		 FROM `sous_categorie` 
		 WHERE ".$fieldQuery."='".$spec."'";

	$resultat_query = mysqli_query($conn,$sql);
	$results['query'] = $sql; 
	while($data =mysqli_fetch_assoc($resultat_query)) {
	  $results['datas'] = $data;
	}
 
}

 // Encoder a l'aide de json avant de renvoyer
 echo json_encode($results);
exit();
?>

jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 17 déc. 2017 à 16:28
Comment te le dire .....
On doit voir ce que contient la variable DEBUG (ça fait plusieurs fois que je te le demande..!! )

Donc...
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 18 déc. 2017 à 14:19
0
Merci
DeBug
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 18 déc. 2017 à 16:06
Tu te mélanges un peu ....
Côté JAVASCRIPT tu envois une variable qui a pour nom : categorie_id (tout en minuscule) (on peut le voir dans le DEBUG, à la ligne : "post:" )

Côté PHP (dans le fichier AJAX ) tu récupère la variable POST de la façon suivante :
$categorie_id = !empty($_POST['Id_categorie'])  ? $_POST['Id_categorie'] : NULL;

Ne vois tu pas le problème ?
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 19 déc. 2017 à 10:35
$categorie_id = !empty($_POST['id_categorie'])  ? $_POST['id_categorie'] : NULL;


NB: rien n'a été change méme erreur

{DEBUG: {…}, error: "Aucune catégorie ou sous-catégorie envoyée...", post: {…}}
DEBUG
:
{POST: {…}, GET: Array(0)}
error
:
"Aucune catégorie ou sous-catégorie envoyée..."
post
:
{categorie_id: "3"}
__proto__
:
Object
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention > deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 19 déc. 2017 à 12:05
Je recommence ....
Dans le code PHP ... tu as :
$categorie_id = !empty($_POST['id_categorie'])  ? $_POST['id_categorie'] : NULL;

Dans ton code JS (tu le vois dans le debug ...) tu envois :
{categorie_id: "3"}


NE VOIS TU PAS UN SOUCI ???
indice ..... LE NOM DES VARIABLES N'EST PAS LE MEME....
Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 19 déc. 2017 à 15:50
0
Merci
sincèrement je ne vois pas , j'ai rectifie le nom des variables pour éviter ce conflit mais rien n'a été
Liste.php
changer

Materiel.php


liste.js
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 19 déc. 2017 à 17:49
Il faut que je vois le contenu COMPLET de DEBUG
Il faut que je sache ce que contient {POST: {…}
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 19 déc. 2017 à 17:50
Ensuite, tu corrigeras également ton code js pour les sous_catégories ...
Tu n’envoies pas les données de la même façon (il me semblait te l'avoir déjà dit... )

Commenter la réponse de deep_sea
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 20 déc. 2017 à 11:10
0
Merci
Voici le contenu COMPLET de DEBUG
jordane45 21199 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 mai 2018 Dernière intervention - 20 déc. 2017 à 12:32
Tu ne m'as toujours pas déplié la ligne où est marqué DEBUG .. c'est pourtant ça que je te demande depuis le début...

A la limite on va faire autrement.... mais pour ça j'ai besoin de ton code javascript corrigé que je puisse y ajouter des choses.
Merci de le coller sur le forum ( mais pas en image.... )
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 20 déc. 2017 à 14:22
débug

Object
DEBUG
:
GET
:
Array(0)
length
:
0
__proto__
:
Array(0)
POST
:
id_categorie
:
"2"
__proto__
:
Object
__proto__
:
Object
datas
:
designation_sous_categorie
:
"Calculatrice"
id_categorie
:
"2"
__proto__
:
Object
query
:
"SELECT *
↵ FROM `sous_categorie`
↵ WHERE id_categorie='2'"
__proto__
:
constructor
:
ƒ Object()
hasOwnProperty
:
ƒ hasOwnProperty()
isPrototypeOf
:
ƒ isPrototypeOf()
propertyIsEnumerable
:
ƒ propertyIsEnumerable()
toLocaleString
:
ƒ toLocaleString()
toString
:
ƒ toString()
valueOf
:
ƒ valueOf()
__defineGetter__
:
ƒ __defineGetter__()
__defineSetter__
:
ƒ __defineSetter__()
__lookupGetter__
:
ƒ __lookupGetter__()
__lookupSetter__
:
ƒ __lookupSetter__()
get __proto__
:
ƒ __proto__()
set __proto__
:
ƒ __proto__()



liste.js

$(document).ready(function() {
			console.log('document ready !');			
	$("#form-categorie").change(function() {
	var spec = $(this).val();
		console.log('form-categorie CHANGE : ' + spec);
		$.ajax({
			type : "POST",
			url: "liste.php",
                        data : {id_categorie:spec},
                        dataType: 'json'
		}).done(function(reponse) {
                   console.log(reponse);
		}).fail(function (jqXHR, textStatus) {
	console.log('ERREUR AJAX ' + textStatus);
});
	});
	/*** sous catégorie****/
			$("#form_sous_categorie").change(function() {
		var spec = $(this).val();
		console.log('form_sous_categorie CHANGE : ' + spec);
		$.ajax({
			type : "POST",
			url: "liste.php?sous_categorie_id=" + spec,
                        dataType: 'json'
		}).done(function(reponse) {
                   console.log(reponse);
			var data = $.parseJSON(reponse);
			}).fail(function (jqXHR, textStatus) {
	console.log('ERREUR AJAX ' + textStatus);
});
		});			
	/**** element ***/
				
		$("#form_element").html("");
			data.forEach(function(ent) {
				$("#form_element").prepend("<option value=\""+ent.code_element+"\">"+ent.Designation_element+"</option>");
			});
	
	
	
});
	
deep_sea 159 Messages postés mardi 10 mai 2016Date d'inscription 5 février 2018 Dernière intervention - 20 déc. 2017 à 14:23
DEBUG
:
GET
:
Array(0)
length
:
0
__proto__
:
Array(0)
POST
:
id_categorie
:
"2"
__proto__
:
Object
__proto__
:
Object
Commenter la réponse de deep_sea