Page 1 sur 2

Liste déroulante

Posté : 21 nov. 2006, 13:33
par Dom!
Bonjour,

J'ai suivi le tuto http://www.phpfrance.com/forums/voir_sujet-4562.php réalisé par Cyrano que je remercie...
je n'ai pas besoin d'afficher la ligne:

<p>Vous avez sélectionné le département <?php echo($dept_selectionne); ?> dans la région <?php echo($region_selectionnee); ?></p>

Je n'indique donc pas dans l'action de mon formulaire : "<?php echo($_SERVER['PHP_SELF']); ?>" mais plutot : ajout_departement.php

Mon probleme c'est que quand je change les régions via la liste déroulante région la page est actualisé et de ve fait envoyé. du coup je ne peux pas finir le traitement de mon formulaire...

Que dois je modifier pour ne pas avoir ce probleme ?

Merci pour votre aide

Posté : 21 nov. 2006, 14:29
par Cyrano
L'affichage indiqué et le contenu de ton attribut action n'ont pas vraiment de rapport : tu peux supprimer le premier sans toucher au second. Et si tu veux pouvoir pointer vers une autre page lorsque tous tes choix sont faits (région + département), il te faut tester en début de page si ces deux données sont valides et le cas échéant rediriger vers la seconde page en envoyant en plus les paramètres de ces données, par exemple, l'identifiant de région et celui de département, ce qui donnerait comme url quelque chose du genre ajout_departement.php?idr=2&idd=24 par exemple

Posté : 21 nov. 2006, 17:22
par Dom!
Puis je avoir un exemple de vérification de données ?

Car je ne trouve pas comment faire !!!

Merci pour ton aide.... :D

Posté : 21 nov. 2006, 17:25
par Cyrano
Tu as vu fonctionner le système de l'exemple : comment est-ce que je vérifie la valeur de la première liste pour afficher la seconde ?

Procède de la même manière pour vérifier la première ET la seconde valeur et construis l'url cible pour mettre un header()

Posté : 22 nov. 2006, 14:27
par Dom!
J'ai donc essayé de faire ce que tu m'a dit mais cela ne fonctionne pas.

Voici ce que j'ai fais :
<?php if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] && $_POST['cle'] != "") 
{ 
    $region_selectionnee = $_POST['region']; 
    $dept_selectionne = $_POST['departement'];
	$cle = $_POST['cle'];
header("Location:inscription.php");
	}
?>  
Merci pour ton aide

Posté : 22 nov. 2006, 14:37
par Ajoloca
Bonjour,

Je ne pense pas que tu as suivi les conseils de Cyrano

En les suivant tu devrais obtenir QQ chose du style
<?php if(isset($_POST['ok']) && isset($_POST['departement']) && (isset($_POST['cle']) && $_POST['cle'] != ""))
{ 

Posté : 22 nov. 2006, 15:25
par Dom!
Oui mais en faisant comme ca la valeur de departement ($_POST['departement'] ) n'existe plus !!!

Posté : 22 nov. 2006, 15:29
par Ajoloca
<?php if(isset($_POST['ok']) && isset($_POST['departement']) && (isset($_POST['cle']) && $_POST['cle'] != ""))
{ 
Dans cette ligne on ne fait que tester, en aucun cas on modifie une valeur, je ne vois où on fait une action sur "$_POST['departement'] " ??? :shock:

Posté : 22 nov. 2006, 15:32
par Dom!
Sur le code suivant....

J'indique que :
if(isset($_POST['ok']) && isset($_POST['departement']) && (isset($_POST['cle']) && $_POST['cle'] != "")) 
{
 
    $region_selectionnee = $_POST['region']; 
    $dept_selectionne = $_POST['departement'];
	
	header("Location:test.php"); 

} 
?> 
$dept_selectionne = $_POST['departement']; dans la liste déroulante departement je test si $_POST['departement'] n'est pas égal à rien et si c'est le cas j'indique la valeur de $dept_selectionne ...

Posté : 22 nov. 2006, 15:40
par Ajoloca
Sur le code suivant....

J'indique que :
if(isset($_POST['ok']) && isset($_POST['departement']) && (isset($_POST['cle']) && $_POST['cle'] != "")) 
{
 
    $region_selectionnee = $_POST['region']; 
    $dept_selectionne = $_POST['departement'];
	
	header("Location:test.php"); 

} 
?> 
$dept_selectionne = $_POST['departement']; dans la liste déroulante departement je test si $_POST['departement'] n'est pas égal à rien et si c'est le cas j'indique la valeur de $dept_selectionne ...
Dans ce code je ne vois nullepart un tel test.
Le seul test qui est fait c'est
isset($_POST['departement'])
ce qui veux dire "$_POST['departement'] existe ?" il n'y-a aucun test sur son contenu.

Posté : 22 nov. 2006, 15:48
par Dom!
Dans le code d'origine il est écrit :
if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] != "") 
Departement est présent dans ce code ! mais dans le code que tu m'as mis il n'existe plus !!!! et cette valeur m'est utile pour le reste de mon code...

MErci pour ton aide

Posté : 22 nov. 2006, 15:50
par Ajoloca
J'ai donc essayé de faire ce que tu m'a dit mais cela ne fonctionne pas.

Voici ce que j'ai fais :
<?php if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] && $_POST['cle'] != "") 
{ 
    $region_selectionnee = $_POST['region']; 
    $dept_selectionne = $_POST['departement'];
	$cle = $_POST['cle'];
header("Location:inscription.php");
	}
?>  
Merci pour ton aide
Regarde bien le code que tu as posté et du quel je suis parti. Tu est sur qu'il-y-a le mêmes choses ???

Posté : 22 nov. 2006, 15:52
par Dom!
Non mais ca c'est le code que moi j'ai réalisé et qui ne fonctionné pas... le code d'origine est dans le lien un peu plus haut :D

Bref je n'arrive pas à faire fonctionner ce code....

Posté : 22 nov. 2006, 15:56
par Ajoloca
Essaie ceci
if(isset($_POST['ok']) && (isset($_POST['departement']) && $_POST['departement'] != "") && (isset($_POST['cle']) && $_POST['cle'] != "")) 
{
 
    $region_selectionnee = $_POST['region']; 
    $dept_selectionne = $_POST['departement'];
    
    header("Location:test.php"); 

} 
?>

Posté : 22 nov. 2006, 15:59
par Dom!
Non la valeur de departement n'est plus.... j'ai pourtant tourné dans tous les sens mais je ne trouve pas.