Envoyer des variables generées dynamiquement vers une autre page php

DzinVolt_Original Messages postés 27 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 2 décembre 2005 - 23 juin 2005 à 10:42
DzinVolt_Original Messages postés 27 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 2 décembre 2005 - 28 juin 2005 à 08:44
Bonjour,


J'ai cree un menu composé de 3 listes deroulantes dependante les une des autres (qui fonctionnent).


Les "options" sont tirées d'une base de données pour les 3 listes,

je voudrais recuperer le code (ou "id") de chaqu'un de mes choix(
id_cycle, id_niveau, id_filiere) , pour le moment je peu avoir que l'
"id_cycle".


Mon code est assez long j'en suis conscient mais vous vous rendrez mieu compte en copiant toute la source.



page qui cree mon menu:



<?php

echo("<?xml version="1.0" encoding="iso-8859-1"?>\n");

/* Variables de connexion : */

$serveur = "localhost";

$admin = "root";

$mdp = "";

$base = "ecl";

/* On récupère si elle existe la valeur du cycle envoyée par le formulaire */

$id_cycle = isset($_POST['cycle'])?$_POST['cycle']:null;

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />

<title>Choix de la classe</title>

</head>



Choisir une classe


<?php

/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()

* car on aura besoin de la connexion un peu plus loin dans le script */

$connexion = mysql_pconnect($serveur, $admin, $mdp);



if($connexion != false)

{

$choixbase = mysql_select_db($base, $connexion);

// recherche de tou les cycle de la base.

$sql1 = "SELECT id_cycle, nom_cycle FROM cycle ORDER BY id_cycle";

$rech_cycles = mysql_query($sql1);

$code_cycle = array();

$cycle = array();

/* On active un compteur pour les cycles */

$nb_cycles = 0;

if($rech_cycles != false)

{

while($ligne = mysql_fetch_assoc($rech_cycles))

{

array_push($code_cycle, $ligne['id_cycle']);

array_push($cycle, $ligne['nom_cycle']);



/* On incrémente de compteur */

$nb_cycles++;

}

}

?>

<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="ch_classe">



<select name="cycle" id="cycle" onchange="document.forms['ch_classe'].submit();">

<option value="-1">- - - Choisissez un cycle - - -</option>

<?php

for($i = 0; $i < $nb_cycles; $i++)

{

?>

<option value="<?php echo($code_cycle[$i]); ?>"<?php
echo((isset($id_cycle) && $id_cycle == $code_cycle[$i])?"
selected="selected"":null); ?>><?php echo($cycle[$i]);
?></option>

<?php

}

?>

</select>

<?php

mysql_free_result($rech_cycles);

/* On commence par vérifier si on a envoyé un numéro de cycle et le cas échéant s'il est différent de -1 */



if(isset($id_cycle) && $id_cycle != -1)

{

/* Cération de la requête pour avoir les niveau de ce cycle */

$sql2 = "SELECT id_niveau,
nom_niveau FROM niveau WHERE id_cycle = ". $id_cycle ." ORDER BY
id_niveau;";

if($connexion != false)

{

$rech_niveau = mysql_query($sql2, $connexion);

/* Un petit compteur pour les niveaux */

$nn = 0;

/*
On crée deux tableaux pour les numéros et les noms des niveaux */

$code_niveau = array();

$nom_niveau = array();

/*
On va mettre les numéros et noms des niveau dans les deux tableaux */

while($ligne_niveau = mysql_fetch_assoc($rech_niveau))

{


array_push($code_niveau, $ligne_niveau['id_niveau']);


array_push($nom_niveau, $ligne_niveau['nom_niveau']);

$nn++;

}



/* Maintenant on peut construire la liste déroulante */

?>

<select name="niveau" id="niveau">

<?php

for($n = 0; $n<$nn; $n++)

{

?>

<option value="<?php echo($code_niveau[$n]);
?>"><?php echo($nom_niveau[$n]." "); ?></option>

<?php

}

?>

</select>



<?php

}

/* Un petit coup de balai */

mysql_free_result($rech_niveau);

}



if($id_cycle >= "4") // si on a une filiere on affiche les choix ...

{

if(isset($id_cycle) && $id_cycle != -1)

{

/* Cération de la requête pour avoir les filiere de ce cycle */

$sql2 = "SELECT id_filiere,
nom_filiere FROM filiere WHERE id_cycle = ". $id_cycle ." ORDER BY
id_filiere;";

if($connexion != false)

{

$rech_filiere = mysql_query($sql2, $connexion);

/* Un petit compteur pour les filieres */

$nf = 0;

/*
On crée deux tableaux pour les numéros et les noms des filieres */

$code_filiere = array();

$nom_filiere = array();

/*
On va mettre les numéros et noms des filieres dans les deux tableaux */

while($ligne_filiere = mysql_fetch_assoc($rech_filiere))

{


array_push($code_filiere, $ligne_filiere['id_filiere']);


array_push($nom_filiere, $ligne_filiere['nom_filiere']);

$nf++;

}

/* Maintenant on peut construire la liste déroulante */

?>

<select name="filiere" id="filiere">

<?php

for($f = 0; $f<$nf; $f++)

{

?>

<option value="<?php echo($code_filiere[$f]); ?>"><?php echo($nom_filiere[$f]." "); ?></option>

<?php

}

?>

</select>

<?php

}

/* Un petit coup de balai */

mysql_free_result($rech_filiere);

}

}

?>





</form>



<?php

$code_classe = $id_cycle;

?>







<form action="recup.php" method="post" name="form_code_classe">

">



</form>

<?php



/* Terminé, on ferme la connexion */

mysql_close($connexion);

}

else

{

/* Si on arrive là, c'est pas bon signe, il faut vérifier les

* paramètres de connexion, mot de passe, serveur pas démarré etc... */

?>

Un incident s'est produit lors de la connexion à la base de
données, veuiillez essayer à nouveau ultérieurement.


<?php

}

?>



</html



Page qui recupere les variable:



<html>





<?php

$code=$_POST['code_classe'];

echo "$code";

?>





</html>



Et enfin voici ma ba se de donnée:




-- -------------------------------

-- -- Base de données: `ecl` --

-- -------------------------------









-- --------------------------------------------------------


6 réponses

GillesWebmaster Messages postés 496 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 29 juillet 2009 1
24 juin 2005 à 08:24
Bonjour ,
Je me suis mis a votre problème, c'est long mais je persévère...
P.S: Vous utilisez quelle version de MySql?
GillesWebmaster


<HR SIZE=2>
0
DzinVolt_Original Messages postés 27 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 2 décembre 2005
25 juin 2005 à 11:14
heu ...

j'utilise easy php 1.7 pour mes test en local.

il me semble qu'il est composé de :

Apache 1.3.27

PHP 4.3.3

MySQL 4.0.15

PhpMyAdmin 2.5.3.



Merci de bien vouloir s'occuper de moi
0
GillesWebmaster Messages postés 496 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 29 juillet 2009 1
25 juin 2005 à 12:16
Bonjour ,
oui ca avance mais c'est assey complexe et j'ai horreur de reprendre les sources des autres mais je m'y attèles et je persèvère...


<HR SIZE=2>

GillesWebmaster
0
DzinVolt_Original Messages postés 27 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 2 décembre 2005
27 juin 2005 à 08:12
Merci c'est tres gentil,

car je suis en stage et je suis un peu "bliqué a cause de ca.



D.zinVolt.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sunshine2004 Messages postés 2 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 9 juillet 2005
27 juin 2005 à 23:30
$id_cycle = isset($_POST['cycle'])?$_POST['cycle']:null;

explique moi en detail cette ligne
car j'ai appliqué ton code a mon probleme et rien
0
DzinVolt_Original Messages postés 27 Date d'inscription mardi 14 juin 2005 Statut Membre Dernière intervention 2 décembre 2005
28 juin 2005 à 08:44
Deja, quel est ton probleme?

Ensuite isset() permet de retourner true
si la variable var est définie et faulse sinon.


Si une variable a été désaffectée avec la fonction unset(), la fonction isset() renverra faulse.



Enfin tous ca ne fais pas avancer mon probleme... niarf



D.zinVolt.
0
Rejoignez-nous