Page 1 sur 1

liste déroulante et switch

Posté : 04 févr. 2014, 18:29
par pacphil
Bonjour j'aurais une liste Maître avec les catégories et suivant les catégorie dans le switch j'aurais les détailles de cette catégorie en PDO quelqu'un aurait une idée svp merci d'avance de votre aide

Re: liste déroulante et switch

Posté : 06 févr. 2014, 00:07
par moogli
salut,

C'est carrément pas clair ton truc va falloir nous expliquer la chose plus clairement.


@+

Re: liste déroulante et switch

Posté : 14 févr. 2014, 17:15
par pacphil
bonjour voici un jet de se que j'aimerais.
<?PHP
include'require/config1.php';


echo "<select name='categorie'>";
$reponse = $connection->prepare( 'SELECT * FROM categorie');
 
while($result = $reponse->fetch(PDO::FETCH_OBJ))
{
 
	echo"<option value=".$result['Cat'].">".$result['Cat_liste']."</option>";
}
echo"</select>";
  switch($result['Cat']){
	  
	case 'auto':
	include'test.php'; 

	  break;
	case 'p_auto': 
	  
	  break;
	case 'moto': 

	  break;
	case 'p_moto': 
	  
	  break;
	case 'bateaux': 
	  
	  break;
	case 'outilage': 
	  
	  break;
	case 'vetement': 
	  
	  break;
	case 'immo': 
	  
	  break;
	case 'electro': 
	  
	  break;
	case 'materiaux': 
	  
	  break;	  	  	  
	default: 
    
	
	  break;
  }	

?>
et la valeur test ici
<!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" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript" src="scriptsjquery.wallform.js"></script>
<link rel=stylesheet href="cs.css" type="jqueryH/text/css">
<script language="javascript" src="jqueryH/chainedselects.js"></script>
<script language="javascript" src="jqueryH/content.js"></script>
</head>

<body onLoad="initListGroup('vehicles', document.forms[0].maker, document.forms[0].type, document.forms[0].model, 'save');">
<p> 
<form> 
<select name="maker" style="width:120px"></select>
<select name="type" style="width:120px"></select>
<select name="model" style="width:120px"></select>
</form>
</p>
</body>
</html>

Re: liste déroulante et switch

Posté : 14 févr. 2014, 19:26
par libertux
Salut,

a priori il y a un problème la ! car dans ton code :
...
while($result = $reponse->fetch(PDO::FETCH_OBJ))
{
 
        echo"<option value=".$result['Cat'].">".$result['Cat_liste']."</option>";
}
echo"</select>";
  switch($result['Cat']){
         
        case 'auto':
        include'test.php';
...
le "switch" utilise la variable "$result['Cat']" qui est en dehor du "while" !

bon je croit que tu veut que selon le choit de l'utilisateur de la liste tu fait appel a un fichier spécifique, non ?

Si c'est le cas tu doit utilisé JavaScript pour faire appel a un fichier externe selon le choit de la liste.
Si c'est clair c'est bon si non envoi le code et on verra ensemble comment aboutir au résultat.

Bon Codage

Re: liste déroulante et switch

Posté : 14 févr. 2014, 20:07
par pacphil
Merci de ta réponse j'essaye de trouver la solution comme le site kapaza.be

quand on choisi une catégorie des autre liste déroulante s'affiche

Re: liste déroulante et switch

Posté : 15 févr. 2014, 00:44
par libertux
Merci de ta réponse j'essaye de trouver la solution comme le site kapaza.be

quand on choisi une catégorie des autre liste déroulante s'affiche
C'est du JavaScript (AJAX), tu peut utilisé JQuery,

Re: liste déroulante et switch

Posté : 15 févr. 2014, 13:18
par pacphil
bonjour voilà je te montre ce que j'ai fait déjà mais , j'ai un petit soucis la premier liste s'affiche les autres ne suive pas

jquery
[javascript]// JavaScript Document
$(document).ready(function() {
var $localite_un = $('#localite_un');
var $localite_deux = $('#localite_deux');
var $localite_trois = $('#localite_trois');

// 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
$('#localite_un').append('<option value="'+ index +'">'+ value +'</option>');
});
}
});

// à la sélection de la localité un dans la liste
$localite_un.on('change_lo', function() {
var val = $(this).val(); // on récupère la valeur de la localité un
if(val != '') {
$localite_deux.empty(); // on vide la liste de localité deux
$localite_deux.append('<option value="">Choisir la localité deux</option>');

$.ajax({
url: 'liste.php',
data: 'localite_un='+ val, // on envoie $_GET['localite_un']
dataType: 'json',
success: function(json) {
$.each(json, function(index, value) {
$localite_deux.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
}
else {
$localite_deux.empty();
$localite_deux.append('<option value="">Choisir la localité deux</option>');
$localite_trois.empty(); // on vide la liste de localité deux
$localite_trois.append('<option value="">Choisir la localité trois</option>');
}
});

// à la sélection de la localité deux dans la liste
$localite_deux.on('change_lo', function() {
var val = $(this).val(); // on récupère la valeur de la localité deux
if(val != '') {
$localite_trois.empty(); // on vide la liste de localité trois
$localite_trois.append('<option value="">Choisir la localité trois</option>');

$.ajax({
url: 'liste.php',
data: 'localite_deux='+ val, // on envoie $_GET['localite_deux']
dataType: 'json',
success: function(json) {
$.each(json, function(index, value) {
$localite_trois.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
}
else {
$localite_trois.empty();
$localite_trois.append('<option value="">Choisir la localité trois</option>');
}
});
});[/javascript]

php
<?PHP
include'require/config1.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'])) {
	
	$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 = $connection->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 = $connection-->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 = $connection-->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);
}

?>

Re: liste déroulante et switch

Posté : 15 févr. 2014, 15:05
par libertux
Bonjour,

Pour commencer quel est la première liste qui s'affiche? est ce 'localote_un'? et les autres sont il visible dès le début?
puis c'est quoi le "change_lo" car je pense que vous voulez faire ça :

[javascript]$('select').on('change', function() {
alert( this.value ); // or $(this).val()
});[/javascript]

Re: liste déroulante et switch

Posté : 15 févr. 2014, 15:23
par pacphil
oui la premier s'affiche les autre pas change_lo ou change ne change rien ;-)

Re: liste déroulante et switch

Posté : 15 févr. 2014, 16:26
par libertux
hmm! essaye avec ce code :

[javascript]


// JavaScript Document
$(document).ready(function() {
var $localite_un = $('#localite_un');
var $localite_deux = $('#localite_deux');
var $localite_trois = $('#localite_trois');

// 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
$('#localite_un').append('<option value="'+ index +'">'+ value +'</option>');
});



// à la sélection de la localité un dans la liste
$localite_un.on('change_lo', function() {
var val = $(this).val(); // on récupère la valeur de la localité un
if(val != '') {
$localite_deux.empty(); // on vide la liste de localité deux
$localite_deux.append('<option value="">Choisir la localité deux</option>');

$.ajax({
url: 'liste.php',
data: 'localite_un='+ val, // on envoie $_GET['localite_un']
dataType: 'json',
success: function(json) {
$.each(json, function(index, value) {
$localite_deux.append('<option value="'+ index +'">'+ value +'</option>');
});





// à la sélection de la localité deux dans la liste
$localite_deux.on('change_lo', function() {
var val = $(this).val(); // on récupère la valeur de la localité deux
if(val != '') {
$localite_trois.empty(); // on vide la liste de localité trois
$localite_trois.append('<option value="">Choisir la localité trois</option>');

$.ajax({
url: 'liste.php',
data: 'localite_deux='+ val, // on envoie $_GET['localite_deux']
dataType: 'json',
success: function(json) {
$.each(json, function(index, value) {
$localite_trois.append('<option value="'+ index +'">'+ value +'</option>');
});
}
});
}
else {
$localite_trois.empty();
$localite_trois.append('<option value="">Choisir la localité trois</option>');
}
});





}
});
}
else {
$localite_deux.empty();
$localite_deux.append('<option value="">Choisir la localité deux</option>');
$localite_trois.empty(); // on vide la liste de localité deux
$localite_trois.append('<option value="">Choisir la localité trois</option>');
}
});






}
});




});

[/javascript]