Trois listes deroulantes liées à mysql (php)

jodenki Messages postés 7 Date d'inscription mercredi 15 mai 2002 Statut Membre Dernière intervention 31 mai 2002 - 31 mai 2002 à 11:47
cs_miko94 Messages postés 2 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 27 juin 2005 - 27 juin 2005 à 16:15
Voila, j'ai trouvé plein de sources qui m'indiquent comment modifier dynamiquement 'en dur' le contenu d'une liste deroulante (c'est à dire que le contenu des listes est dans le code). ca c'est cool.

Mais j'aimerais plutot que mes données viennent d'une base de donnée Mysql. Je sais interroger la base en php mais pas en javasrcipt... comment qu'on fait please... (deux jour que je tourne autour du pot ca me soule)...

Merci.

5 réponses

guilhemh Messages postés 36 Date d'inscription lundi 22 avril 2002 Statut Membre Dernière intervention 12 décembre 2005
31 mai 2002 à 11:57
Petit rappel :
Javascript est un langage côté client
Php lui est côté serveur

Ta base de donnée n'étant pas sur le client, il n'est pas possible d'utiliser javascript, de plus javascript ne possède pas de composants pour accéder à une base de recherche. Désolé.

Pour réussir ton entreprise, il faut que tu ailles chercher tes données avec des scripts côté serveur et ensuite que tu les manipules en javascript.
0
cs_chfilippi Messages postés 1 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 12 juin 2003
12 juin 2003 à 16:42
Je ne pense pas que ce soit impossible, mais apparamment il te faut combiner du php-mysql avec ton Javascript, mais ce n'est pas évident. Voilà une méthode :

http://www.phpinfo.net/articles/article_listes.html

et en prime le même script modifié par un des membres du forum :
http://www.phpinfo.net/scripts/scripts114.html#scripts089

@+
0
logbird1 Messages postés 6 Date d'inscription lundi 28 juillet 2003 Statut Membre Dernière intervention 14 avril 2005
14 avril 2005 à 11:38
salut,

j'utilise la version originale de ce script, mais j'ai des problems
pour recupere les valeurs selectionnees dans les 2 listes deroulantes !
des fois ca marche et des fois c'a marche pas !

elle est ou ma bouse ?

merci d'avance pour votre aide !



<?php

include_once("../_lib/aspect.php");

_html_header("Entrer un nouveau evenement du $club_name ");

//on se connecte à la base de donnée

require_once("../_lib/conf.inc.php");

require_once("../_lib/fonction.php");

require_once("../_lib/lib_finances.php");

include_once("../htm/coureurs.htm");

db_connect();

?>



<SCRIPT LANGUAGE="JavaScript">



function ModifierListe(code_item) {



lg = document.addevt.zlItem.length;



// On vide la liste

for (i = lg - 1; i >= 0; i--) {

document.addevt.zlItem.options[i] = null;

}



grp_id = document.addevt.zlRubrique.selectedIndex;

<?php



// Génération des Items par Rubriques

$sql = "SELECT grp_id FROM groupe ORDER BY grp_id";

$resultat = mysql_query($sql);



$max_lignes = 0;

$option_max = '';



while ($enr = mysql_fetch_array($resultat)) {



$sql = "SELECT disc_id, disc_name ";

$sql .= "FROM discipline ";

$sql .= "WHERE grp_id='".$enr[0]."'";

$sql .= "ORDER BY disc_name";

$resultat2 = mysql_query($sql);



echo " if (document.addevt.zlRubrique.options[grp_id].value == ".$enr[0].") {\n";

echo " document.addevt.zlItem.length = ".(mysql_num_rows($resultat2)).";\n";

$cpt = 0;

while ($enr2 = mysql_fetch_array($resultat2)) {

echo " document.addevt.zlItem.options[".$cpt."].value = ".$enr2[0].";\n";

echo " document.addevt.zlItem.options[".$cpt."].text = "".$enr2[1]."";\n";

echo " if (code_item ".$enr2[0].") document.addevt.zlItem.options[".$cpt."].selected
true;\n";

$cpt++;

if ($cpt > $max_lignes) $max_lignes = $cpt;

if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];

}

echo " }\n";



}



?>



}



</SCRIPT>



<?php



if($addevt)

{

$echec="";

if ($evt_place=="") $echec=$echec."- Le champ lieu est obligatoire
";

if ($evt_date=="") $echec=$echec."- Le champ date est obligatoire
";

if ($groupe=="") $echec=$echec."- Le champ groupe est obligatoire
";

if ($discipline=="") $echec=$echec."- La discipline est obligatoire
";

if ($echec=="")

{

// INSERTION de l'evenement dans la table des evenements

$fp=open_log();

$req="insert into evenements
(evt_name,evt_place,evt_grp,evt_disc,evt_date,saison) VALUES
('$evt_name','$evt_place','$groupe','$discipline','$evt_date','$current_saison')";

$requette=mysql_query($req) or die (" Erreur $req
");

$log=write_log($fp,"$req;"."\n");

$ferm=close_log($fp);

$message=" Liste des valeurs :
Date $evt_date Nom $evt_name Lieu $evt_place Groupe $groupe Discipline
$discipline
";

$message=$message."Succes.
Votre saisie a ete prise en compte.
merci.";

print $message;

}

else

{

$message="Echec.
Corrigez votre saisie.
".$echec;

print $message;

}

}

if (!$addevt || $echec !="")

{



// ----------------------------------------------------------------------------

// Liste Rubriques

// ----------------------------------------------------------------------------

db_connect();



?>

<FORM METHOD=POST NAME='addevt' action="../php/add_evt.php">

Date
&nbsp;,

,

Nom de l'evt,

,

lieu de l'evt,

,

----

<?php

// ----------------------------------------------------------------------------

// Liste Rubriques

// ----------------------------------------------------------------------------

$sql = \"SELECT grp_id, grp_name FROM groupe ORDER BY grp_name\";

$resultat = mysql_query($sql);

echo \"Groupe, \";

echo \"<SELECT NAME='zlRubrique' onChange='ModifierListe(-1)'>\n";

while ($enr = mysql_fetch_array($resultat)) {

echo "<OPTION VALUE='".$enr[0]."'";

if ($zlRubrique == $enr[0]) echo " SELECTED";

echo ">".htmlspecialchars($enr[1])."</OPTION>\n";

}

echo "</SELECT>, \n\";

// ----------------------------------------------------------------------------

// Liste Items

// ----------------------------------------------------------------------------

echo \"Discipline, \";

echo \"<SELECT NAME='zlItem'>\n";

for ($cpt = 0; $cpt < $max_lignes; $cpt++)

echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";

echo "</SELECT>&nbsp;, \n\";

if (!isset($zlItem)) $zlItem = -1;

echo \"<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(\".$zlItem.\");\n</SCRIPT>\n\";

// ----------------------------------------------------------------------------

?>


<?php

echo "\n";

echo "";

echo "";

echo "";

echo "</FORM>";

}

_html_footer();

?>


logbird
0
cs_miko94 Messages postés 2 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 27 juin 2005
27 juin 2005 à 15:08
Salut j'ai un petit pb pourt lier 3 liste deroulantes
voila mon code :

function ModifierListe(code_item)
{
lg = document.frmDemo1.zlItem.length;
for (i = lg - 1; i >= 0; i--)
{
document.frmDemo1.zlItem.options[i] = null;
}
code_rub = document.frmDemo1.zlRubrique.selectedIndex;
<?php
$sql = "SELECT num_ser_int FROM service_intervenant ORDER BY num_ser_int";
$resultat = mysql_db_query($dbName, $sql);
$max_lignes = 0;
$option_max = '';
while ($enr = mysql_fetch_array($resultat))
{
$sql = "SELECT code_motif, lib_motif ";
$sql .= "FROM motif ";
$sql .= "WHERE num_ser_int='".$enr[0]."'";
$sql .= "ORDER BY lib_motif";
$resultat2 = mysql_db_query($dbName, $sql);
echo " if (document.frmDemo1.zlRubrique.options[code_rub].value == ".$enr[0].") {\n";
echo " document.frmDemo1.zlItem.length = ".(mysql_num_rows($resultat2)).";\n";
$cpt = 0;
while ($enr2 = mysql_fetch_array($resultat2))
{
echo " document.frmDemo1.zlItem.options[".$cpt."].value = ".$enr2[0].";\n";
echo " document.frmDemo1.zlItem.options[".$cpt."].text = "".$enr2[1]."";\n";
echo " if (code_item ".$enr2[0].") document.frmDemo1.zlItem.options[".$cpt."].selected true;\n";
$cpt++;
if ($cpt > $max_lignes) $max_lignes = $cpt;
if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];
}
echo " }\n";
}
?>
}

function ModifierListe2(code_mot)
{
lg = document.frmDemo1.z2Item.length;
for (i = lg - 1; i >= 0; i--)
{
document.frmDemo1.z2Item.options[i] = null;
}
code_ssm = document.frmDemo1.zlItem.selectedIndex;
<?php
$sql = "SELECT code_motif FROM motif ORDER BY code_motif";
$resultat = mysql_db_query($dbName, $sql);
$max_lignes = 0;
while ($enr = mysql_fetch_array($resultat))
{
$sql = "SELECT code_sous_motif, lib_sous_motif ";
$sql .= "FROM sous_motif ";
$sql .= "WHERE code_motif='".$enr[0]."'";
$sql .= "ORDER BY lib_sous_motif";
$resultat2 = mysql_db_query($dbName, $sql);
echo "if (document.frmDemo1.zlItem.options[code_ssm].value == ".$enr[0].") {\n";
echo "document.frmDemo1.z2Item.length = ".(mysql_num_rows($resultat2)).";\n";
$cpt = 0;
while ($enr2 = mysql_fetch_array($resultat2))
{
echo "document.frmDemo1.z2Item.options[".$cpt."].value = ".$enr2[0].";\n";
echo "document.frmDemo1.z2Item.options[".$cpt."].text = "".$enr2[1]."";\n";
echo "if (code_mot ".$enr2[0].") document.frmDemo1.z2Item.options[".$cpt."].selected true;\n";
$cpt++;
if ($cpt > $max_lignes) $max_lignes = $cpt;
if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];
}
echo "}\n";
}
?>
}


Libellé abrégé :<?php
$sql = "SELECT num_ser_int, lib_ab_ser_int FROM service_intervenant ORDER BY lib_ab_ser_int";
$resultat = mysql_db_query($dbName, $sql);
echo " <SELECT NAME='zlRubrique' onChange='ModifierListe(-1)'>\n";
if (!isset($zlRubrique)) $zlRubrique = - 1;
while ($enr = mysql_fetch_array($resultat))
{
echo "<OPTION VALUE='".$enr[0]."'";
if ($zlRubrique == $enr[0]) echo " SELECTED";
echo ">".htmlspecialchars($enr[1])."</OPTION>\n";
}
echo "</SELECT> \n";
?>

Motif : <?
echo " <SELECT NAME='zlItem' onChange='ModifierListe(-1)'>\n";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
echo "</SELECT> \n";
if (!isset($zlItem)) $zlItem = -1;
echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$zlItem.");\n</SCRIPT>\n";
?>

Sous motif : <?
echo " <SELECT NAME='z2Item' onChange='ModifierListe2(-1)'>\n";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
echo "</SELECT> \n";
if (!isset($z2Item)) $z2Item = -1;
echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe2(".$z2Item.");\n</SCRIPT>\n";
?>
OU SE SITUE LE PB CAR MOI JE NE VOIS PAS
Merci
0

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

Posez votre question
cs_miko94 Messages postés 2 Date d'inscription lundi 27 juin 2005 Statut Membre Dernière intervention 27 juin 2005
27 juin 2005 à 16:15
RECTIFICATION : ds le 2eme et 3eme SELECT les onChange n'y sont pas mais malgré ca ca ne marche toujours pas
0
Rejoignez-nous