AFFICHER UNE LISTE DÉROULANTE EN FONCTION D'UNE AUTRE LISTE SANS RECHARGER LA PA

cs_sory1 Messages postés 9 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005 - 1 sept. 2004 à 12:21
molki Messages postés 2 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 juin 2011 - 21 juin 2011 à 13:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25832-afficher-une-liste-deroulante-en-fonction-d-une-autre-liste-sans-recharger-la-page-ou-passer-l-information-par-l-url

molki Messages postés 2 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 21 juin 2011
21 juin 2011 à 13:46
Bonjour
Je viens de pas mal cafouiller pour adapter cette super source à mon environnement !
Cependant, je vous le livre si ça peut aider.
Je suis en Oracle en ADODB et je n'ai qu'une table "normale" avec des dates (21/07/2011) et des heures entières (8 ou 9) et une case de rendez-vous (vide ou non)
Je veux afficher les dates uniques en 'cat' et les heures dispo de cette date en 'scat'.

Voilà le résultat qui tourne correctement, merci !!

<html>

<head>
<title>Créer par Frop01 (Membre du Club CodeS-Source.com)</title>
<script>
List = new Array();
function Remplir(valeur)
{
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie Date) correspond à la Date de la catégorie ex : List[2]=new Array ('04/07/2011',9);
if (List[i][0]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value="+List[i][1]+">"+List[i][1]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>
</head>

<form method="POST" action="rdvd_date.php">
<select size="1" name="cat" OnChange="Remplir(cat.value)">
<?php
// Paramètres de la Connexion à la base MYSQL
session_start();

require ('adodb.inc.php');
include ("fonctions/rdvd_fonc.php");
include ("config/rdvd_config.php");
$adocon = &ADONewConnection("oci8");
$adocon->PConnect($DB_HOST,$DB_USER,$DB_PASS);

$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

$today=date("d/m/Y");
$sql_getdates_libres = "select distinct DAT_RDV from RDVD_RDV where DAT_RDV>TO_DATE('$today','DD/MM/YYYY') and COD_CAN is null order by DAT_RDV";
//echo "
$sql_getdates_libres";
$rs0 = $adocon->Execute($sql_getdates_libres);
$i=0;
while (!$rs0->EOF)
{
$DAT_RDV = format_datez_rdv($rs0->fields["DAT_RDV"]);
echo "\t\t<option value=$DAT_RDV>$DAT_RDV</option>";
if ($i==0) { $j="'$DAT_RDV'"; $i=1; } // garder la valeur du premier enregistrement
$rs0->MoveNext();
}
?>

</select>

<select size="1" name="souscat">
</select>

<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$sql_getheures_libres = "select DAT_RDV, HEU_RDV from RDVD_RDV where DAT_RDV>TO_DATE('$today','DD/MM/YYYY') and COD_CAN is null group by DAT_RDV, HEU_RDV";
//echo "
$sql_getheures_libres";
$rs1 = $adocon->Execute($sql_getheures_libres); // or die ("Select impossible");
$i=0;
while (!$rs1->EOF)
{
$HEU_RDV = $rs1->fields["HEU_RDV"];
$DAT_RDV = format_datez_rdv($rs1->fields["DAT_RDV"]);
// Remplir le tableau (array) en javascript
// ex : List[1]=new Array ('04/07/2011',8);
// ex : List[2]=new Array ('04/07/2011',9);
echo "<script>List[$i] = new Array('$DAT_RDV',$HEU_RDV);</script>";
$i++;
$rs1->MoveNext();
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>


</form>

</html>
cs_hantouva Messages postés 12 Date d'inscription vendredi 10 décembre 2010 Statut Membre Dernière intervention 19 mars 2012
24 mars 2011 à 11:50
bonjour;
je viens d'utiliser votre code afin d'afficher les communes relative aux wilaya cepensdant jutilise une base de donnees sql server au lieu de my sql, la liste derouante de wilaya fonctionne cependant celle de commune( s'affiche vide et un message derreur saffiche avec, je ne trouve pas ou es le probleme jai repri le script ds head comme tel pourriez vous m'aider si vous avez une idee svp sachant que la partie connexion la bd s'effectue sans aucun pb

voici message derreur
Notice: Undefined offset: 1 in C:\wamp\www\\ECOF.php on line 258

Notice: Undefined offset: 2 in C:\wamp\www\ECOF.php on line 258
ligne 258: echo "<script>List[".$i."] = new Array(".($row[0]).",".($row[1]).",'".($row[2])."');</script>";

voici mon code
partie liste deroulante de wilaya
<select class="arrondi" name="cat" dir="ltr" OnChange="Remplir(cat.value)">

<option value="-1">- - - Choisissez une wilaya - - -</option>

<?php
$i=0;
$j=0;

$query=odbc_exec ($sqlconnect,"SELECT wilayalib FROM wilaya" );

while(odbc_fetch_into($query,$row))
{


echo "\t\t<option value=".($row[0]).">".($row[0])."</option>";
if ($i==0) { $j=$row[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>
</select>


partie code et liste de commune




<select class="arrondi" maxlength="20" name="souscat" >

</select>


</td>
<?php
// Séléction de les enregistrements de la table commune

$query=odbc_exec ($sqlconnect,"SELECT comlib FROM commune " );

while(odbc_fetch_into($query,$row))

// $i = initialise la variable i
$i=0;

{
// Remplir le tableau (array) en javascript
// ex : List[1]=new Array (1,1,"Sous-catégorie 1");
// ex : List[2]=new Array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] = new Array(".($row[0]).",".($row[1]).",'".($row[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des communes en utilisant la valeur j
?>


ma table wilaya contient comme champ: wilayalib,id_wilaya
table commune continent: comlib,id_com,id_wilaya


merci bcq
infoges Messages postés 9 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 4 avril 2010
1 avril 2010 à 14:11
Bonjour frop01,
Dans le cadre de la préparation de mon projet de fin d'étude, j'ai une tâche pareille avec celle de ton code des deux listes déroulantes liées alimentées de la base de données MySql.
j'ai essayé ton code avec ta base de données et ça marche très bien mais en l'appliquant sur la mienne, il y aura un affichage du contenu de la première liste déroulante mais la deuxième liste reste vide si c'est possible peux-je vous envoyer mon code et ma base de données pour m'orienter vers la bonne solution. Franchement, j'ai essayé tant de fois de comprendre le principe du fonctionnement du code JavaScript avec celle de l'affichage de la deuxième liste déroulante sans cesse.
Dans l'attente de votre réponse, veuillez agréer Monsieur, mes salutations les plus distinguées.
Amicalement
cs_saille Messages postés 8 Date d'inscription vendredi 27 novembre 2009 Statut Membre Dernière intervention 15 février 2013
27 nov. 2009 à 11:49
Bonjour,

Je cherche a utiliser ce code, qui correspond tout à fait à ce dont j'ai besoin.

Ma seconde liste déroulante ne contient rien.

Je charge correctement ma première liste (en affichage code source j'ai entre autre :

<form method="POST" action="Ajout6.php3">
<select size="1" name="cat" OnChange="Remplir(cat.value)">
<option value='23001'>AHUN</option> etc etc

A noter que j'ai mis entre ' ' l'option value (code postal), comme dans la tables, mais sans les ' ' c'est pareil.

Je charge correctement mon tableau (toujours en affichage code source) :

<script>List[0] = new Array(AINC,LE CHAMP DE LA VILLE,'03003');</script><script>List[1] = new Array(AINR,LES RECOLLETS,'03003') etc etc

Je n'ai rien modifié au script java, sauf le test puisque je veux tester le code postal :

if (List[i][2]==valeur)

Merci si quelqu'un a une idée
Saille désemparée
dilettante2008 Messages postés 1 Date d'inscription lundi 4 décembre 2000 Statut Membre Dernière intervention 1 octobre 2009
1 oct. 2009 à 07:58
Salut,

Juste merci pour la ressource, c'est simple et très efficace.
lhymn Messages postés 5 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 11 décembre 2008
10 déc. 2008 à 10:17
Merci pour ton lien pour le code en javax c'est clair que c'est plus simple et surtout moins lourd
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
22 avril 2008 à 11:01
C'es bon c'est réolu :) j'avais oublier d'inclure mais fichiers requis dans resultsPopulaetData.php

MDR... coment passer 2 jours sans comprendre lol :)
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
22 avril 2008 à 10:10
Hello,

J'ai essayer le script via ajax.... je n'arrive pas a le faire marcher...

Mon index.php :

<head>
...
<script type="text/javascript" language="javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else

//définition de l'endroit d'affichage:
var content = document.getElementById("contenu");

XhrObj.open("POST", page);

//Ok pour la page cible
XhrObj.onreadystatechange = function()
{if (XhrObj.readyState 4 && XhrObj.status 200)
content.innerHTML = XhrObj.responseText ;
}

XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData

</script>
...
</head

...

<select name="ListRegions" OnChange="sendData('id='+this.value,'resultsPopulateDatas.php')" onKeyUp="sendData('id='+this.value,'resultsPopulateDatas.php')">
<?php

$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
$rq="SELECT * FROM ListRegions ORDER BY regionsName ASC";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{

echo "<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; }
}

?>
</select>
...




<?php
echo "<select name="city">";
$rq="SELECT * FROM ListCities WHERE id_regionale=".$j." ORDER BY citiesName ASC";
$result= mysql_query ($rq) or die ("Select impossible");
$i=0;
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[2])."</option>
";
}
echo "</select>";
?>



...

resultsPopulateDatas.php :

<?php

// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){

$rq="SELECT * FROM ListCities WHERE id_regionale=".$_POST['id']." ORDER BY citiesName ASC";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
if (mysql_num_rows($result)>0)
{
echo "<select size='1' name='city'>";
}
else
{
echo utf8_encode("Pas de sous catégories disponible");
}
while ($dt=mysql_fetch_row($result))
{
echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[2])."</option>
";
}
echo "</select>";
}

?>

HELP ! THANKS :)

PS : la connexion database est défini ailleur.
J'arrive a afficher le premier select mais lors de la selection s'un des elements sa me retourne "select impossible"
ryoz Messages postés 2 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 12 mars 2007
12 mars 2007 à 16:07
Je n'ai pas pu mettre de note car il y a un pb, mais je mets 10/10 :)
C'est tout a fait ce ke je cherchais (mais pas en javascript)
Je te remercie beaucoup, ca va me faire gagner du temps
cs_marial Messages postés 13 Date d'inscription jeudi 1 février 2007 Statut Membre Dernière intervention 5 juin 2007
5 févr. 2007 à 18:08
Moi je trouve ce code très moins explicite et pourquoi n'as-tu pas crée tes listes avec un exemple concret parce que là on ne sait où les ajouter !
cs_bixx Messages postés 2 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 21 août 2006
13 août 2006 à 15:55
Bonjour, deja merci pour ce code tres utile !!!

Je voulai avoir un renseignement car en faite lorsque je verifi si les listes contienne quelquechose, ma page me di qu'il ne sont pas rempli ?? est-ce normal ou pas ?

Je me suis donc dit que cela venait de mysql_fetch_rows car il propose que deux $rows pour les categorie et trois pour les sous_categorie.

J'ai donc pensé à mysql_fetch_array qui me fera une liste entiére de tout !! mais je ne suis pas encore sure que le problème vienne de mysql_fetch_rows !!

Merci d'avance
ce18ce Messages postés 5 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 22 août 2006
7 mars 2006 à 10:53
Bonjour, Le script est tres bien fait, tres bien expliqué, merci encore !

Pour ajouter mon petit grain de sel, pour ceux comme moi qui désirait afficher les différents champs du formulaire sur la meme ligne, il suffit de remplacer la balise DIV par une balise SPAN :)

voila !

cécile
cs_guismo1er Messages postés 76 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 12 mars 2009
3 mars 2006 à 14:56
il y a moyen sans ajax, rien q'uavec un on change et c'est bon ;)
ahcorad Messages postés 106 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 octobre 2007
8 févr. 2006 à 10:43
comment peut-on faire une triple liste déroulante avec ta méthode ajax ????
ctzenfr Messages postés 10 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 7 août 2010
15 oct. 2005 à 23:35
Suite...
Résolu en utilisant la méthode AJAX qui est vraiment terrible !
ctzenfr Messages postés 10 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 7 août 2010
15 oct. 2005 à 15:00
Bonjour,

Petite question complémentaire si je puis me permettre.
Comment conserver la valeur sélectionnée de souscat avec un rechargement de page.
Je m'explique : post du formulaire, vérif des champs sur le serveur, un champ n'est pas validé, réaffichage du form avec les valeurs saisies et un message d'erreur.
Pour cat ça baigne avec !strcmp
if (!(strcmp($dt['0'], $_POST['cat']))) {echo 'selected="selected"'; $j=$dt[0]; $i=1;}
mais pour le second moi y'en a pas bien du tout parler le javanais... Euh le javascript sorry et je ne vois pas trop comment causer au serveur avec lui.

Merci d'avance.
ctzenfr Messages postés 10 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 7 août 2010
14 oct. 2005 à 17:43
->Frop01,

Clair, précis et efficace... 10/10
Merci.
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
4 oct. 2005 à 18:24
:) pas aussi fort que ca :) mais merci pour le compliement :)

sinon pour afficher le résultat d'une rêquete sur plusieurs page, il existe plusieurs sources par ici.

AFFICHAGE DE RÉSULTATS MYSQL SUR PLUSIEURS PAGES :
http://www.phpcs.com/code.aspx?id=24689


AFFICHAGE DYNAMIQUE DES RESULTATS D'UNE REQUETE MYSQL SUR PLUSIEURS PAGES :
http://www.phpcs.com/code.aspx?id=27578

Bon courage ;)

NB ! toujours regarder les commentaires du code pour mieux comprendre et voir les critiques.
houda_mez Messages postés 6 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 4 octobre 2005
4 oct. 2005 à 16:18
ça y est j'ai trouvé mon erreur en fait j'ai oublié de modifier la requete
puisque j'ai changé la valeur envoyée donc celle recupérer dans la requete de selection des sous categories doit changer puisque il s'agit de tri selon les id

merci beaucoup pour ton aide
et puisque t'es trop fort en php peut tu m'aider sur le probleme de pagination des resultats d'une requete je veux une source bien commentée si c'est possible
et merci encore une fois
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
4 oct. 2005 à 16:04
Envois le code source pour que je vérifie ainsi la structure de tes tables!!

PS : Prière de bien vouloir envoyer les codes sources sur le forum de phpcs et de faire
le lien vers le message du forum içi.
car ca commence sérieusement à être le désordre par ici.

Merci de votre compréhension.
houda_mez Messages postés 6 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 4 octobre 2005
4 oct. 2005 à 14:59
ça marche toujours pas la liste des sous categories est vide ainsi ke la valeur envoyée de categorie
comment faire pour ke value de categorie et sous categorie soit designation
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
4 oct. 2005 à 12:59
salut,

dans les deux cas, le formulaire envoi la valeur contenue dans <option value=".($dt[0])."

il suffit de modifier à ta guise le contenu de value

ex: pour renvoyer la désignation pour les catégories : (n'oublie pas les apostrophes pour chaines de caractères)

<option value='".($dt[1])."'>"

pour les sous-catégories : (dans la partie javascript)

sel= sel + "<option value="+List[i][2]+">"+List[i][2]+"</option>";


Bonne continuation !!
houda_mez Messages postés 6 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 4 octobre 2005
4 oct. 2005 à 12:29
bon j'ai utilisé les 2 codes celui ci et celui en utilisant ajax mais les codes ont le même probleme c'est l'envoi des id ma page resultat me donne 2 4 au lieu de categorie 2 et sous categorie4
j'ai essayé de changer le List[i][0] par List[i][2] pour ce code et
$dt[2] pour l'autre et ça pas marché pour les deux
pourrez vous m'aider svp
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
30 sept. 2005 à 14:18
lol

salut malalam,

non je parle de [url=""][url] qui ne marche pas dans les commentaires de phpcs ;)

Merci pour ton code :) @+
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 sept. 2005 à 13:08
Merci pour le merci ;-)
Tu mets des liens vers MON code sans me le dire ?????

Je plaisante hein lol. ;-) Merci de l'attention.

heu...sinon, qu'est-ce qui ne marche pas? Sur la page en lien, ça marche très bien ?
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
29 sept. 2005 à 16:12
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
29 sept. 2005 à 16:05
Salut à tous

Comme je l'ai dit plus haut :

"cette méthode n'est pas recommandé pour un grand nombre de données."

Dans le cas où le nombre de données est très important et que le fait d'utiliser un array bouffe trop de resource et de mémoire du serveur! il est recommendé d'utiliser la technologie AJAX pour interroger le serveur avec javascript pour tirer les informations voulus sans recharger la page.

Voici le même exemple que celui-ci mais utilisant AJAX :

["http://perso.wareteam.com/comment_demander_des_informations_au_serveur_sans_recharger_la_page-.php" AFFICHER UNE LISTE DÉROULANTE EN FONCTION D'UNE AUTRE LISTE SANS RECHARGER LA PAGE OU PASSER L'INFORMATION PAR L'URL EN UTILISANT LA TECHNOLOGIE AJAX.]

PS : Merci à GRenard et malalam.
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
16 sept. 2005 à 23:01
salut,

je pense que ca vient du fait que tu as enlever le paramètre "valeur" pour la fonction.

function Remplir(valeur){

@+
jerome78000 Messages postés 1 Date d'inscription jeudi 15 septembre 2005 Statut Membre Dernière intervention 15 septembre 2005
15 sept. 2005 à 18:40
Bonjour je viens de faire quelques changement pour accéder à ma base de données. J'arrive bien à voir le menu categorie mais le menu sous-categorie reste vide. Pouvez vous me dire si je dois changer d'autres choses. Merci d'avance pour votre aide.
Voici mon code :
<html>

<head>
<title>Créer par Frop01 (Membre du Club CodeS-Source.com)</title>
<script>
List = new Array();
function Remplir(){
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catégorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value="+List[i][0]+">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>
</head>


<form method="POST" action="Ajout6.php3">
<select size="1" name="cat" OnChange="Remplir(cat.value)">
<?php
// Paramètres de la Connexion à la base MYSQL
$user="root";
$host="localhost";
$password="root";
$database="MyLibrary";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");

mysql_select_db($database,$connexion);

// Séléction de tous les enregistrements de la table Catégorie
$rq="Select * from table_categorie order by nomCategorie;";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>

</select>





<select size="1" name="souscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select * from table_sous_categorie order by nomSousCat;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : List[1]=new Array (1,1,"Sous-catégorie 1");
// ex : List[2]=new Array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>



</form>



</html>
cs_manubarnum Messages postés 8 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 21 novembre 2004
8 juil. 2005 à 08:45
Bonjour Frop01,
Et bien merci pour ta réponse, même tardive, elle reste bien sûr bienvenue:)
Je vais de ce pas essayer cette solution.
@+
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
7 juil. 2005 à 15:21
Salut,


Selon le message de NeoSqual :
"j'ai pour clés primaires des éléments texte et non pas des éléments numériques comme toi(1,2,3...)"

Suppossons que la clé primaire de Catégorie est varchar(1) et le idcat des sous-cartégorie est varchar(1)

ex SQL :

-----------------------------------------------------
CREATE TABLE `categorie` (
`id_cat` char(1) NOT NULL default '',
`designation` varchar(50) NOT NULL default '',
`comment` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_cat`),
UNIQUE KEY `designation` (`designation`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `categorie`
--

INSERT INTO `categorie` VALUES ('A', 'Ressources Webmaster', 'Site dédié aux webmasters. Tutorials, Exemples, Codes Sources, ressources, images, Cliparts, Gifs, Forums ...');
INSERT INTO `categorie` VALUES ('B', 'Downloads', 'Téléchargement freeware, shareware...');
INSERT INTO `categorie` VALUES ('C', 'Programmation', 'Developpement programmation');

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

--
-- Structure de la table `sous_categorie`
--

CREATE TABLE `sous_categorie` (
`id_scat` int(5) NOT NULL auto_increment,
`idcat` char(1) NOT NULL default '0',
`designation` varchar(50) NOT NULL default '',
`comment` varchar(255) NOT NULL default '',
PRIMARY KEY (`id_scat`),
UNIQUE KEY `designation` (`designation`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;

--
-- Contenu de la table `sous_categorie`
--

INSERT INTO `sous_categorie` VALUES (5, 'A', 'Php & Mysql', 'Forums, Tutorials, Codes Sources ..');
INSERT INTO `sous_categorie` VALUES (4, 'C', 'Visual Basic', 'VB, VB.NET, Crystal Report, Access, SQL SERVER ..');
INSERT INTO `sous_categorie` VALUES (6, 'A', 'Javascript', 'Tutorials pour javascript, Forums ...');
INSERT INTO `sous_categorie` VALUES (2, 'A', 'Gifs animés, Icônes', 'Téléchargement gifs animés , clipart, Icones');
INSERT INTO `sous_categorie` VALUES (1, 'A', 'Templates', 'Sites de téléchargement de modèles de site web');
INSERT INTO `sous_categorie` VALUES (3, 'B', 'Pilotes', 'Drivers, pilotes, carte graphiques');
INSERT INTO `sous_categorie` VALUES (7, 'B', 'Freeware, sharware', 'Freeware, sharware');
INSERT INTO `sous_categorie` VALUES (8, 'C', 'SQL SERVER', 'Tutorials forum SQL SERVER');
----------------------------------------------------------------

le code doit ressembler à ca :


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

<html>

<head>
<title>Créer par Frop01 (Membre du Club CodeS-Source.com)</title>
<script>
List = new Array();

function Remplir(valeur){
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value=""+List[i][0]+"">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>
</head>


<form method="POST" action="Ajout6.php3">
<select size="1" name="cat" OnChange="Remplir(cat.value)">
<?php
// Paramètres de la Connexion à la base MYSQL
$user="root";
$host="localhost";
$password="";
$database="essai";
$i=0; // variable de test
$j=""; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");

mysql_select_db($database,$connexion);

// Séléction de tous les enregistrements de la table Catégorie
$rq="Select * from categorie order by designation;";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value="".($dt[0])."">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>

</select>





<select size="1" name="souscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select * from sous_categorie order by designation;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : List[1]=new Array (1,1,"Sous-catégorie 1");
// ex : List[2]=new Array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] =new Array(".($dt[0]).",'".($dt[1])."','".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}

echo "<script>Remplir('$j');</script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>




</form>



</html>

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


Explication :

Dans le tableau List
on change de format du 2ème item de 1 à A et on doit mettre les quotes.

List[1]=new Array (1,1,"Sous-catégorie 1");
à
List[1]=new Array (1,"A","Sous-catégorie 1");

pareil pour les balises Option :
au lieu de :
<option value=1>truc</option>";
ca devient
<option value="A">truc</option>";

pareil pour le remplissage :

Remplir('$j'); au lieu de Remplir($j);

espérant que j'ai répondu à vos questions. N'hésitez pas à me demander d'autres précisions.

Si je ne répond pas tout de suite! c'est que j'ai énormément de boulot alors Merci de votre compréhension.
cs_manubarnum Messages postés 8 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 21 novembre 2004
7 juil. 2005 à 14:08
Bonjour,
Et bien zut, je n'ai pas trouvé la solution à ce problème!
Tant pis, je me résoud à chercher une autre solution.
@+
cs_manubarnum Messages postés 8 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 21 novembre 2004
20 juin 2005 à 11:49
Bonjour,
Et bien comme tout le monde je trouve cette source très utile!
Par contre, je rencontre le même problème que Neosqual... que je remercie pour son tuyau : j'avais pas vu que le problème pouvait venir d'identifiants de type caractères.
Je cherche un peu de mon côté et vous tient au courant le cas échéant.
@+
cs_manubarnum Messages postés 8 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 21 novembre 2004
20 juin 2005 à 11:45
Bonjour,
Et bien comme tout le monde je trouve cette source très utile!
Par contre, je rencontre le même problème que Neosqual... que je remercie pour son tuyau : j'avais pas vu que le problème pouvait venir d'identifiants de type caractères.
Je cherche un peu de mon côté et vous tient au courant le cas échéant.
@+
sly1082 Messages postés 2 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 3 juin 2005
3 juin 2005 à 10:43
Neosqual

j'ai le même problème que toi et je voulais savoir si tu as trouvé une solution. Je suis en train de me prendre la tête
cs_neosqual Messages postés 13 Date d'inscription vendredi 11 juin 2004 Statut Membre Dernière intervention 18 mai 2005
18 mai 2005 à 16:32
Bonjour!

Franchement géniale ton code Frop01!!!
J'ai néammoins une petite question...je l'ai intégré à mes tables qui sont a peu près similaire aux tiennes. Seule différence : j'ai pour clés primaires des éléments texte et non pas des éléments numériques comme toi(1,2,3...)
Je voulais juste savoir ce qu'il faut changer dans le code pour que les vérifs avec mes variables primaires non numériques se fassent correctement.
On notera que la première liste déroulante se crée sans problème, mais la deuxième reste vide.
J'ai essayé de changer les mysql_fetch_row en mysql_fetch_array mais cela n'a rien arrangé...

Merci d'avance pour l'aide apportée et encore félicitations pour le programme!

Neosqual
cs_Irukandji Messages postés 1 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 20 avril 2005
20 avril 2005 à 17:21
Bonjour;

Tout d'abord, Merci beaucoup à Frop01 pour son script...C'était parfait pour ce que j'avais à faire.
Ensuite, pour ce qui est de l'affichage du résultat...j'avais le même problème que Julik...car je voulais récupérer la désignation du champ sélectionné pour l'afficher dans une page de résultat.
Au cas , voilà un moyen simple et efficace (qui marche ...pour le moment ;-)):

Dans la page de résultat, insérez 2 requêtes SQL (code ci-dessous) en haut de la page pour récupérer les champs "designation" correspondants aux $id_cat et $id_scat sélectionnés.
--------------------------------------------------------------------

<?php
// Paramètres de la Connexion à la base MYSQL
$user="root";
$host="localhost";
$password="";
$database="essai";
$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");

mysql_select_db($database,$connexion);

// Séléction de tous les enregistrements de la table Catégorie
$rq="Select designation from categorie where (id_cat = '".$cat."')";
$result= mysql_query ($rq) or die ("Select impossible");
$data = mysql_fetch_assoc($result);
$designation_cat=$data ['designation'];

// Séléction de tous les enregistrements de la table Catégorie
$rq="Select designation from sous_categorie where (id_scat = '".$souscat."')";
$result= mysql_query ($rq) or die ("Select impossible");
$data = mysql_fetch_assoc($result);
$designation_scat=$data ['designation'];
?>
----------------------------------------------------------------------

A noter: pour l'affichage, les variables sont alors:
$designation_cat
et
$designation_scat


A+
Tchenouleur Messages postés 10 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 18 janvier 2008
18 janv. 2005 à 11:33
Bonjour,
Je cherchais un moyen de remplir des combo sans recharger la page et je suis tombé sur ce post que je viens d'implémenter dans mon code. Il a l'air très bien fait mais je ne connais rien en php vu que ça fait une semaine que j'ai commencé. Ma liste s'affiche bien dans le premier combo mais dans le second il me met sélection impossible. J'aimerais savoir si vous pouviez m'aider à réaliser mon code. Je vous l'affiche :

<?php include("connexion.php");?>
<html>

<head>
<title>Combo</title>
<script>
List = new Array();
function Remplir(valeur){
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catégorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value="+List[i][0]+">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle list à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>
</head>


<form method="POST" action="Combo.php">
<select size="1" name="cat" OnChange="Remplir(cat.value)">
<?php
// Paramètres de la Connexion à la base MYSQL

// Séléction de tous les enregistrements de la table Section
$rq="Select * from section order by Sec_Libelle;";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>

</select>





<select size="1" name="souscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Classe
$rq="Select * from classe order Cla_Libelle;";
$result= mysql_query ($rq) or die ("Selection impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-catégorie 1");
// ex : list[2]=new array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>



</form>



</html>
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
12 janv. 2005 à 16:02
Salut,

pour lancer une requete dynamiquent sans recharger la page , il faudrait charger au début toutes les données dans un tableau car en javascript, on ne peut pas utiliser le php/mysql.

il te faut recharger la page avec les nouvelles données si la table contient beaucoup de données.

@+
Florianter Messages postés 5 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 11 janvier 2005
11 janv. 2005 à 21:44
Bonjour,

J'aimerais récupérer la variable "catégorie" selectionnée dans la première liste pour ensuite afficher une deuxieme liste en me connectant à une table sql qui change selon la variable.
C''est à dire :que ma connection s'effectuerait comme ça :
$rq="Select * from sous_categorie_$variable order by designation;";

Je ne sais pas comment faire... Qqn peut m'aider?

Merci d'avance
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
8 janv. 2005 à 21:46
Salut,

Merci mais c'est aps exactement ce que je cherche à faire.
En fait, je veux éditer une entrée déjà existante et il m'arrive ce qui est décrit dans mon dernier post...

Merci quand même

Julik
cs_sory1 Messages postés 9 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005
8 janv. 2005 à 21:36
Salut tout le monde
Je reprends la discussion un peu tard donc peut etre que j'ai pas tout compris par rapport à ce que tu veux faire Julik, mais, moi pour remedier au fait qu' au 1er chargement les tables s'affichent pas j'ai mis comme valeurs par defaut "Veuillez choisir une catégorie " dans la liste des categories et " Veuillez choisir une sous-catégorie " ds celle des souscat.
La solution de facilité :-)) !
je sais pas si tu as déjà pensé à ça ?
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
8 janv. 2005 à 20:32
Salut,

MErci pour ta réponse. MAis en fait c'est toujours la même technique qu'on applique, c'est-à-dire ajouter "Selected" dans le code lorsque c'est la bonne valeur de sous catégorie.
Or cette technique ne marche qu'à moitié...
En effet, quand je charge la page. La liste des sous catégories reste blanche... Alors que j'aimerais que la sous-catégorie apparaisse déjà...
Il faut que je change la liste des catégories et là en remettant la bonne catégorie (j'enlève la bonne, je met une autre, je remet la bonne), la sous catégorie se met directement sur la valeur enregistrée... Mais seulement après avoir fait ue manipulation de la liste déroulante catégorie...

C'est un problème qui me semble bizarre. Le code m'apparait en effet comme bon...

Une idée?

Cordialement
Julien
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
6 janv. 2005 à 12:46
en fait j'ai fini la dinde :)
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
6 janv. 2005 à 12:31
Salut

Mes meilleurs voeux pour 2005 ;)

bon il faut rajouter un champs qui se nomme "defaut" de type Tinyint (1)

ensuite mettre la valeur à 1 dans les enregistrements que tu veux que ca se soit par défaut

ex :

*****************************************
CREATE TABLE `sous_categorie` (
`id_scat` int(5) NOT NULL auto_increment,
`idcat` int(5) NOT NULL default '0',
`designation` varchar(50) NOT NULL default '',
`comment` varchar(255) NOT NULL default '',
`defaut` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id_scat`),
UNIQUE KEY `designation` (`designation`)
) TYPE=MyISAM AUTO_INCREMENT=9 ;

#
# Contenu de la table `sous_categorie`
#

INSERT INTO `sous_categorie` VALUES (5, 1, 'Php & Mysql', 'Forums, Tutorials, Codes Sources ..', 0);
INSERT INTO `sous_categorie` VALUES (4, 3, 'Visual Basic', 'VB, VB.NET, Crystal Report, Access, SQL SERVER ..', 0);
INSERT INTO `sous_categorie` VALUES (6, 1, 'Javascript', 'Tutorials pour javascript, Forums ...', 0);
INSERT INTO `sous_categorie` VALUES (2, 1, 'Gifs animés, Icônes', 'Téléchargement gifs animés , clipart, Icones', 1);
INSERT INTO `sous_categorie` VALUES (1, 1, 'Templates', 'Sites de téléchargement de modèles de site web', 0);
INSERT INTO `sous_categorie` VALUES (3, 2, 'Pilotes', 'Drivers, pilotes, carte graphiques', 1);
INSERT INTO `sous_categorie` VALUES (7, 2, 'Freeware, sharware', 'Freeware, sharware', 0);
INSERT INTO `sous_categorie` VALUES (8, 3, 'SQL SERVER', 'Tutorials forum SQL SERVER', 1);


*************************************


ensuite

en rajouter cette valeur au tableau list

while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-catégorie 1");
// ex : list[2]=new array (2,1,"Sous-catégorie 2");
echo "<script>list[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."',".($dt[4]).");</script>";
$i=$i+1; // Incrémentation de $i
}


ensuite dans le remplissage :

if (list[i][1]==valeur)
{
if (list[i][3]==1)
{ ValeurSS="SELECTED";
}
else{
ValeurSS="";
}
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option "+ ValeurSS + " value="+list[i][0]+">"+list[i][2]+"</option>";
}

}


Voila le code complet :

"********************************

<html>

<head>
<title>Créer par Frop01 (Membre du Club CodeS-Source.com)</title>
<script>
list = new Array();
function Remplir(valeur){
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<list.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (list[i][1]==valeur)
{
if (list[i][3]==1)
{ ValeurSS="SELECTED";
}
else{
ValeurSS="";
}
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option "+ ValeurSS + " value="+list[i][0]+">"+list[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle list à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>
</head>


<form method="POST" action="Ajout6.php3">
<select size="1" name="cat" OnChange="Remplir(cat.value)">
<?php
// Paramètres de la Connexion à la base MYSQL
$user="root";
$host="localhost";
$password="";
$database="combo";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");

mysql_select_db($database,$connexion);

// Séléction de tous les enregistrements de la table Catégorie
$rq="Select * from categorie order by designation;";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>

</select>





<select size="1" name="souscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select * from sous_categorie order by designation;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-catégorie 1");
// ex : list[2]=new array (2,1,"Sous-catégorie 2");
echo "<script>list[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."',".($dt[4]).");</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>



</form>



</html>

'*********************



et voila ;)
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
5 janv. 2005 à 19:32
Salut,

Bonne année et tout et tout.

Pour ce qui est de l'utilisation du boolean, j'en suis au point mort.
Tu pourrais éclairer ma lanterne?

Cordialement

Julien
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
25 déc. 2004 à 18:17
Salut,

ESt-ce que tu pourrais venir à mon secours pour ce foutu boolean? Bien sûr quand tu auras fini la dinde... ;o)

MErci

Joyeuses Fêtes
JUlien
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
14 déc. 2004 à 23:30
Salut,
Désolé pour le mauvais code.
Alors j'ai donc créé un champ "defaut" dans la table sous_catégorie. Avec pour valeur par défaut 1.
Ainsi toutes les entrées ont pour champ "defaut" 1.

Dans mon code pour éditer les valeurs d'une entrée, j'ai mis:

while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."',".($dt[3]).");</script>";
$i=$i+1; // Incrémentation de $i
}

echo "<script>valeurenr='$k';</script>"; //k contient la désignation de la ss catégorie voulue (c'est sûr et testé)
echo "<script>Remplir ($j); </script>";


Et dans la fonction:
<script>
List = new Array();
valeurenr="";
function Remplir(valeur)
{
var sel="";
sel ="<select size='1' name='sscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
ValeurSS ="";
if (List[i][2]==valeurenr && List[i][3]==1 ) { ValeurSS="SELECTED";}
sel= sel + "<option "+ ValeurSS + " value="+List[i][0]+">"+List[i][2]+"</option>";
}
}
sel =sel + "</select>";

// Modifier le DIV scat par la nouvelle list à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>


Au final, j'obtiens la même chose qu'à ma dernière étape, à savoir: quand je charge la page, la liste des sous-catégories reste blanche... Alors que j'aimerais que la sous-catégorie apparaisse déjà...
Il faut que je change la liste des catégories et là en remettant la bonne correspondance (j'enlève la bonne, je met une autre, je remet la bonne), la sous-catégorie se met directement sur la valeur enregistrée...

En fait, je n'ai pas compris comment se servir de ce boolean. A quoi il sert, comment on change sa valeur et quand...
Ca fait trop... ;o)
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
14 déc. 2004 à 22:40
Salut,

Pardon si j'ai pas pu répondre :)


1- BOOLEAN a été ajouté en MySQL version 4.1.0,
mais on peut utiliser TINYINT(1) comme synonyme de BOOLEAN . Il accepte les valeurs entières dans la même plage que TINYINT ainsi que la valeur NULL. TRUE et FALSE peuvent être utilisés comme alias de 1 et 0.


2-
-- Dans le code que tu as mis tu n'as pas mis le teste pour List[i][3]=1 ??
-- pourquoi faire avec valeurenr = "10"; ???

Si ca marche pas remets le code que tu as fais ici
@+
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
14 déc. 2004 à 17:41
SAlut,

Je me rappelle à ton bon souvenir... ;o)
Si tu pouvais éclairer ma lanterne...
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
9 déc. 2004 à 19:39
Salut,
Merci pour ta réponse. MAis j'ai plusieurs soucis.
1. JE ne trouve pas de type bollean dans phpmyadmin... Du coup je le remplace par un char de 1. Déjà là ça doit plus le faire...
2. JE ne suis pas sûr d'avoir fait ce que tu voulais.
Ce que j'ai fait:
Dans le code:
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."',".($dt[3]).");</script>";

Dans la fonction: j'ai simplement ajouté le test List[i][3]=1 pour l'attribution de SELECTED :

<script>
List = new Array();
function Remplir(valeur,valeurenr){
var sel="";
sel ="<select size='1' name='sscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
ValeurSS ="";
if (List[i][2]==valeurenr) { ValeurSS="SELECTED";}

sel= sel + "<option "+ ValeurSS + " value="+List[i][0]+">"+List[i][2]+"</option>";
}
}
sel =sel + "</select>";
valeurenr = "10";
// Modifier le DIV scat par la nouvelle list à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>

Est-ce ce que tu pensais? Si tu peux être un peu plus précis.
Merci Frop01! Tu n'aimes pas qu'on t'appelle grenouille? ;o)
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
9 déc. 2004 à 16:45
Salut julik ,

La solution réside dans l'ajout d'un autre champ boolean nommé "Defaut" dans la table Sous catégorie.

lorsque tu charges les données dans le tableau List, le dernier paramètres est 0 ou 1

0 = rien ; 1= valeur par défaut (séléctionné)

// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-catégorie 1",0);
// ex : list[2]=new array (2,1,"Sous-catégorie 2",1);

ensuite dans Remplir tu testes si List[i][3]=1 then SELECTED

@+

NB : mon pseudo c'est FROP et non pas FROG ;)
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
9 déc. 2004 à 11:48
Salut,
CEla provient probablement du fait que tu tentes également de faire une 3ème liste de sous-sous catégories.
En effet tu rappelles une 2ème fois la fonction remplir qui est faite pour scat...
Essaye de faire le code sans la sous-sous catégorie... CA devarit marcher.
Après rajoute la ss-ss catégorie qui appellera une fonction remplir2() que tu adapteras à ss-ss catégorie.
Du genre:
<script>
list = new array();
function Remplir2(valeur){
var sel="";
sel ="<select size='1' name='soussouscat'>";
// Parcourir le tableau
for (var i=0;i<list.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (list[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value="+list[i][0]+">"+list[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV sscat par la nouvelle list à partir du variable SEL
document.getElementById('sscat').innerHTML=sel;
}
</script>

Voilo... A tenter...
Bonne chance.

Sinon Frog01, des idées pour mon dernier soucis?
Merci
Julik
trek92 Messages postés 2 Date d'inscription vendredi 23 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
9 déc. 2004 à 10:42
Salut julik et merci pour ta reponse,
ca y est jai reussi a afiicher les categorie mais maintean jai un probleme pour afficher mes sous categories, cela m' affihe nien quelque chose ds mes sous categorie mais seulement la variable 0 ? saurai tu maider?

<script>
List = new Array();
valeurenr="";
function Remplir(valeur){

var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
ValeurSS ="";
if (List[i][2]==valeurenr) { ValeurSS="SELECTED";}

sel= sel + "<option "+ ValeurSS + " value="+List[i][0]+">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>




<form method="POST" action="resultat.php">
<select size="1" name="cat" OnChange="Remplir(cat.value)">
<?php
// Paramètres de la Connexion à la base MYSQL
$user="root";
$host="localhost";
$password="";
$database="essai";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");

mysql_select_db($database,$connexion);

// Séléction de tous les enregistrements de la table Catégorie
$rq="Select * from categorie order by designation;";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>

</select>





<select size="1" name="souscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select * from sous_categorie order by designation;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-catégorie 1");
// ex : list[2]=new array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>





<select size="1" name="soussouscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select * from sous_sous_categorie order by designation;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-sous catégorie 1");
// ex : list[2]=new array (2,1,"Sous-sous catégorie 2");
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-sous catégories en utilisant la valeur j
?>



</form></center>
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
9 déc. 2004 à 00:27
Salut trek92,

J'ai regardé vite fait ton code.
Je sais pas si c'est une erreur de copie, mais
de la 2ème ligne n'est pas à la bonne place...
D'autre part, respectes-tu bien la casse de tes tables dans tes requêtes?
Suis nouveau programmeur, désolé si c'est voulu...

Bonne chance..
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
8 déc. 2004 à 15:58
Bonjour,
Merci encore.
MAis le code ne marche qu'à moitié...
En effet, quand je charge la page. La liste des sous catégories reste blanche... Alors que j'aimerais que la sous-catégorie apparaisse déjà...
Il faut que je change la liste des catégories et là en remettant la bonne correspondance (j'enlève la bonne, je met une autre, je remet la bonne), la sous catégorie se met directement sur la valeur enregistrée...
C'est un brin embêtant...
Une autre idée?
Merci

Julien, qui commence à être désolé d'abuser ainsi de votre temps...
trek92 Messages postés 2 Date d'inscription vendredi 23 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
8 déc. 2004 à 14:06
Salut, j' aimerai bien un peu d' aide, ma connection se fait bien mais je narive pa a afficher mes categories dans la liste deroulantes
mon code :

<form method="POST" action="Ajouts.php3">


<select size="1" name="cat" onChange="Remplir(cat.value)">
</select>


<?php
// Paramètres de la Connexion à la base MYSQL
$user="root";
$host="localhost";
$password="";
$database="produits";
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage

$connexion = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible");

mysql_select_db($database,$connexion);

// Séléction de tous les enregistrements de la table Catégorie
$rq="Select NOM from fabricants order by NOM;";
$result= mysql_query ($rq) or die ("Select impossible");
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}

?>


<select size="1" name="souscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select CATEGORIE from categories order by CATEGORIE;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-catégorie 1");
// ex : list[2]=new array (2,1,"Sous-catégorie 2");
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>




<select size="1" name="soussouscat">
</select>



<?php

// Séléction de tous les enregistrements de la table Sous-Catégorie
$rq="Select VITESSE from vitesseppm order by VITESSE;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
// Remplir le tableau (array) en javascript
// ex : list[1]=new array (1,1,"Sous-sous catégorie 1");
// ex : list[2]=new array (2,1,"Sous-sous catégorie 2");
echo "<script>List[".$i."] = new Array(".($dt[0]).",".($dt[1]).",'".($dt[2])."');</script>";
$i=$i+1; // Incrémentation de $i
}
echo "<script>Remplir ($j); </script>"; // Remplir la deuxième liste de choix avec les données
// des sous-catégories en utilisant la valeur j
?>
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
8 déc. 2004 à 13:42
Supprimer la ligne inutile

valeurenr= valeurenr;

@+
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
8 déc. 2004 à 13:39
Salut ,

C'est tout a fait normal que ca marche pas parsque on appelle la fonction remplir une seule fois dans le programme et ensuite la valeur $k sera perdu.

la solution est de déclarée une variable valeurenr comme on a fait pour le tableau List:

<script>
List = new Array();
valeurenr="";
function Remplir(valeur){

valeurenr= valeurenr;
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
ValeurSS ="";
if (List[i][2]==valeurenr) { ValeurSS="SELECTED";}

sel= sel + "<option "+ ValeurSS + " value="+List[i][0]+">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>


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

ensuite dans le code on affecte la valeur directement à valeurenr.

echo "<script>Remplir ($j); </script>"; echo "<script>valeurenr='le mot que tu ...';</script>";
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
8 déc. 2004 à 00:14
Bonsoir,
Merci pour vote aide.
CA ne marche pas vraiment... En fait je soupçonne qu'il y ait un problème dans le passage de la variable "valeurenr"...
Le fais-je de la bonne manière?
Voilà mon code: (sachant que $k contient bien la désignation de la sous catégorie)

echo "<script>Remplir ($j,$k); </script>";

appelle le code suivant:

<script>
List = new Array();
function Remplir(valeur,valeurenr){
var sel="";
sel ="<select size='1' name='sscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie

if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
ValeurSS ="";
if (List[i][2]==valeurenr) { ValeurSS="SELECTED";}

sel= sel + "<option "+ ValeurSS + " value="+List[i][0]+">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";

// Modifier le DIV scat par la nouvelle list à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}
</script>
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
7 déc. 2004 à 21:26
Salut,


Pardon si j'ai pas suivi votre discussion dès le début.

J'èspère que j'ai compris ;)

Voici comment procéder pour la sélection par défaut dans la deuxième liste :

function Remplir(valeur){
var sel="";
sel ="<select size='1' name='souscat'>";
// Parcourir le tableau
for (var i=0;i<List.length;i++)
{
// tester si la ligne du tableau (Sous-catégorie) correspond à la valeur de la catéhorie
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
ValeurSS ="";
if (List[i][2]=="Valeur que tu veux que ca soit séléctionné") { ValeurSS="SELECTED";}

sel= sel + "<option "+ ValeurSS + " value="+List[i][0]+">"+List[i][2]+"</option>";
}

}
sel =sel + "</select>";
// Modifier le DIV scat par la nouvelle List à partir du variable SEL
document.getElementById('scat').innerHTML=sel;
}


Bien sur vous pouvez aussi tester sur la valeur de l'index du tableau et non pas le contenu du texte.

@+
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
7 déc. 2004 à 12:11
J'ai mon projet à rendre sous peu. Donc si vous pouviez m'aider, ça m'arrangerait beaucoup.
Merci
Julien
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
6 déc. 2004 à 11:55
Bonjour,
Merci pour cette réponse.
MAis en fait ça j'avais réussi à le faire...
Mon problème se situe à la 2ème liste des sous-catégories. Là je cale pour introduire un "selected" du fait du javascript qui s'intercale... Je pense qu'il faudrait inclure cela dans le code javascript mais j'ai fait bon nombre de tentatives du style :
if (List[i][1]==valeur)
{
// Ajouter une rubrique sous-catégorie au variable SEL
sel= sel + "<option value="+List[i][0];
if (valeurenr List[i][2]) {sel sel + " SELECTED";}
sel = sel + ">"+List[i][2]+"</option>";
}
veleurenr est la valeur de la variable que je veux sélectionner...
MAis sans succès.
Si vous avez une idée...

Merci

Julien
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
6 déc. 2004 à 11:40
en fait voici le code exact:
$selected = "";
if ($dt[0]="cellequejeveux selectionner") $selected="selected";
echo "\t\t<option $selected value=".($dt[0]).">".($dt[1])."</option>";
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
6 déc. 2004 à 11:37
1ere question, il semble que tu te sois gouorré:
$sscat = $_POST['sscat'] au lieu de scat.

2eme question, si tu veux q'un champ soit selectionné tu peux faire:
tu dois avoir un while (patati patata)
echo <option name ="nom" value="$valeur">$valeur</option>

et tu remplace ca par:
while (patati patata)
$selected = "";
if ($valeur="celle que je veux selectionner") selected="selected"
echo <option $selected name="nom" value="$valeur">$valeur</option>

Voila, le principe est qu'une option de ton <select> est selectionnée si tu rajoute <option selected ...></option>
Et en fait, tu fais juste un test if pour vérifier que c'est bien cette option que tu veux selectionner. Si c'est celle la, tu rajoute 'selected', sinon, tu rajoute '', c'est a dire rien.
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
5 déc. 2004 à 20:23
Bonsoir,

J'aimerais qu'une certaine valeur (contenue dans une base mysql) soit déjà selectionnée dans la 2ème liste (celle des sous-catégories) lorsque j'ouvre la page.
J'ai déjà réussi à le faire pour la 1ère liste des catégories. Mais pas moyen pour la seconde...
Sauriez-vous comment faire?

Merci
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
8 nov. 2004 à 19:45
Bonsoir,
J'ai un autre soucis concernant ce code...
En effet, j'aimerais récupérer les valeurs choisies (cat et sscat) dans les listes déruoulantes.
Je procède la façon suivante:
Dans mon fichier de reception resultats.php4, je mets ceci:
$cat=$_POST['cat'];
$sscat=$_POST['scat'];

Et je reçois la valeur du champ 'id_cat' correspondant au choix pour $cat et rien du tout pour $sscat.
Pourrais-tu m'aider pour récuperer le champ 'designation' des 2 variables?

Merci
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
5 nov. 2004 à 12:58
Bonne continuation ;)
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
5 nov. 2004 à 12:08
En fait, je viens de le faire marcher!
J'ai simplement changé le nom de sscat dans <select size="1" name="sscat">...
Un peu logique en somme...

MErci encore
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
5 nov. 2004 à 11:52
Salut,

Merci pour cette réponse rapide.
J'ai appliqué ce que tu m'as dit simplement en copiant/collant le script et en changeant LIst et remplir en LIst2 et remplir2.

Malheuresement, je n'obtiens aucunes valeurs dans les listes de sous-catégories...

Je n'ai pas bien compris ce que tu voulais dire par "et charger les données dans List2 à partir de la base", cela vient peut-être de là...?

MErci pour ton aide

Julien
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
5 nov. 2004 à 02:45
Salut,

Pour faire la meme chose deux fois, il te faux un autre tableau :

comme ---> list = new array();
----> list2 = new array();

ensuite faire une autre procédure Remplir2 en changeant List par List2

et charger les données dans List2 à partir de la base.

Si tu n'as pas compris ce que je veux dire, reposte un autre message pour que je reformuler ma reponse.

Bonne continuation et merci pour l'interet que tu portes à l'égard de ce code source.
cs_julik Messages postés 22 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 14 décembre 2004
4 nov. 2004 à 23:30
Bonjour,

MErci pour ce code qui marche très bien.
Cependant j'ai un soucis lorsque je veux appliquer 2 fois ce code sur la même page pour les mêmes valeurs. Je n'arrive pas avoir de bons résultats du fait que je ne comprends pas totalement le code de départ.
J'ai essayé de multiples changements de noms de variables sans très bons résultats. J'arrive à obtenir une première sous catégorie, mais l'autre imossible.

Pourrais-tu éclairer ma lanterne?

Merci

Julien
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
11 sept. 2004 à 22:50
Voila c'est fait .

Il faut appeler la procédure Remplir après le chargement des données dans l'array List.

Aperçu : http://cyberscorp.e-odyssey.net/combo.php

Merci pour ces détails.
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
11 sept. 2004 à 21:24
Il me semble que c'est possible. Je n'ai pas encore essayé, mais il suffit normalement de placer la fonction Remplir(dt[0]) juste apres le <select> des catégories
ce qui donne:
while ($dt=mysql_fetch_row($result))
{
// Remplir la liste déroulante des catégorie
echo "\t\t<option value=".($dt[0]).">".($dt[1])."</option>";
}

?>

</select>


<script>Remplir(cat.value)</script>
Voila!
cs_sory1 Messages postés 9 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005
9 sept. 2004 à 21:08
n'est pas ? je trouve aussi que c'est un joli code ! meme si la valeur initiale ne se charge pas au premier chargement de la page ...
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
9 sept. 2004 à 18:43
Ok maintenan ca fonctionne. j'avais deja modifié l'erreur de majuscule sur list, mais je n'avais pas vu celle de Array. Merci encore. C'est une tres bonne source, tres utile. J'utilise ces sous liste dans 4 de mes sites et tous rechargeaient la page. Plus maintenant!!!!
Merci
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
7 sept. 2004 à 13:12
Alors,

L'erreur vient du non respect de la case majuscule.

Remplacer dans votre code :

array par Array
list par List

et normalement, ca doit marcher.

Merci zoukozouko de m'en avoir informé.

NB : pourtant le code que j'ai copier ici est juste mais l'affichage a changé.
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
7 sept. 2004 à 12:21
Salut,

J'ai fais le test dans mon compte d'hébergement et voici le résultat :
http://cyberscorp.e-odyssey.net/combo.php

Effectivement, j'ai constaté des erreurs au niveau du tableau List (array) dans ton cas, et je vais me renseigner là dessus .

Merci.
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
1 sept. 2004 à 12:29
Salut,

Je n'avais pas pensé à commenté cette partie du code. Merci !

Ajout6.php est une autre page qui va traiter les informations (Enregistrement ou autre)

Les Valeurs seront stockés dans les variables cat et souscat.

Exemple de récupération des données dans Ajout6.php :

$cat=$_POST['cat'];
$souscat=$_POST['souscat'];

Merci !
cs_sory1 Messages postés 9 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 8 janvier 2005
1 sept. 2004 à 12:21
ajout6.php3 est une autre page ou c'est le nom de la page elle meme

<form method="POST" action="Ajout6.php3">
Rejoignez-nous