liste déroulante et switch

Eléphant du PHP | 257 Messages

04 févr. 2014, 18:29

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 févr. 2014, 00:07

salut,

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


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 257 Messages

14 févr. 2014, 17:15

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>

Eléphant du PHP | 83 Messages

14 févr. 2014, 19:26

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

Eléphant du PHP | 257 Messages

14 févr. 2014, 20:07

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

Eléphant du PHP | 83 Messages

15 févr. 2014, 00:44

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,

Eléphant du PHP | 257 Messages

15 févr. 2014, 13:18

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);
}

?>

Eléphant du PHP | 83 Messages

15 févr. 2014, 15:05

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]

Eléphant du PHP | 257 Messages

15 févr. 2014, 15:23

oui la premier s'affiche les autre pas change_lo ou change ne change rien ;-)

Eléphant du PHP | 83 Messages

15 févr. 2014, 16:26

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]