help php liste déroulante via mysql - PHP - Programmation
Marsh Posté le 08-02-2005 à 09:11:21
Le mieux est d'utiliser du php, sinon ceux qu'ont pas javascript seront baisés.
Donc tu met ta première liste, dans un formulaire, avec un bouton ok. Lors de l'envoi, ton script php récupère la deuxième liste, et réaffiche la page avec
Marsh Posté le 08-02-2005 à 09:13:12
bof la majorité des navigateurs interpètent le javascript
moi je dirais qu'il faut utiliser php pour générer du javascript c'est plus fun
Marsh Posté le 08-02-2005 à 09:13:24
le sujet a déjà été moulte fois abordé, fait une tite recherche et tu trouvera des exemples dans les réponses déjà apportées
Marsh Posté le 08-02-2005 à 09:15:02
couak a écrit : bof la majorité des navigateurs interpètent le javascript |
9% n'ont pas javascript
Et l'accessibilité, bourdel /FOU/
Marsh Posté le 08-02-2005 à 09:18:22
donc javascript ou php, et je n'ai trouvé aucun script sur lequel la deuxième liste apparait lors de la selection à la première, et je rapel que je suis novice... si vous avez des scripts a me proposer, je suis preneur... Merci.
Marsh Posté le 08-02-2005 à 09:20:43
Nope, on ne peut que t'aider si tu bosses par toi-mêmes (lis la charte )
Faut faire ça en php, c'est tout simple.
Marsh Posté le 08-02-2005 à 09:24:04
je veux bien bosser, c juste que je voudrais un coup de mains. Je suis queqlu'un de très motivé, mais donner moi juste une ou deux piste dans ce cas, php VS javascript ...?
apparition sur selection: 0 réponse google... Yeah!... Merci...
Marsh Posté le 08-02-2005 à 09:33:14
FlorentG a écrit : 9% n'ont pas javascript |
bah spa de ma faute si 9% des gens qui surfent sur le web sont soit des extrémistes religieux qui utilisent un navigateur des années 1600, soit des parano qui ont peur du javascript
Marsh Posté le 08-02-2005 à 09:34:18
geor a écrit : je veux bien bosser, c juste que je voudrais un coup de mains. Je suis queqlu'un de très motivé, mais donner moi juste une ou deux piste dans ce cas, php VS javascript ...? |
il faut commencer les choses dans l'ordre : comprendre ce qu'est PHP, comprendre ce qu'est Javascript
les jeunes d'aujourd'hui n'ont jamais connu les bibliothèques où on cherchait manuellement dans les index aujourd'hui ils font tout avec google
Marsh Posté le 08-02-2005 à 09:34:29
Comme dit :
T'affiche sur ta page un formulaire (<form> ), avec dedans ta liste (<select> et liste d'<option> dedans), et un bouton ok(<input> ). Une fois le formulaire envoyé, tu récupère la valeur du <select>, tu cherches les valeurs qui vont bien, et tu affiches la deuxième <select>.
Marsh Posté le 08-02-2005 à 09:36:40
couak a écrit : bah spa de ma faute si 9% des gens qui surfent sur le web sont soit des extrémistes religieux qui utilisent un navigateur des années 1600, soit des parano qui ont peur du javascript |
ACCESSIBILITE /FOU/MECHANT/PAS CONTENT/
Directive 6 des WCAG :
Citation : S'assurer que les pages soient visibles lorsque les scripts, les applets ou autres artefacts programmables sont désactivés ou non supportés. |
Marsh Posté le 08-02-2005 à 09:36:57
comment afficher avec retardement? (kan la première choisit, apparition de la deuxième?
Marsh Posté le 08-02-2005 à 09:38:52
geor a écrit : comment afficher avec retardement? (kan la première choisit, apparition de la deuxième? |
Comme dit, l'internaute choisira un élément dans la liste, cliquera sur ok, et là ton script affichera la deuxième.
Marsh Posté le 08-02-2005 à 09:40:35
ReplyMarsh Posté le 08-02-2005 à 09:46:33
Note qu'il ne faut absolument pas utiliser le onchange pour afficher l'autre select, comme expliqué dans ce billet sur openweb
Marsh Posté le 08-02-2005 à 11:37:34
Comment sauvegarder la selection de la première dans une variable a utiliser dans la deuxième liste déroulante qui se trouve sur la même page.??? Merci d'avance.
Marsh Posté le 08-02-2005 à 11:53:28
Ben quand t'envoi le formulaire, tu récupère la valeur de la select
Marsh Posté le 08-02-2005 à 12:01:25
geor a écrit : donc javascript ou php, et je n'ai trouvé aucun script sur lequel la deuxième liste apparait lors de la selection à la première, et je rapel que je suis novice... si vous avez des scripts a me proposer, je suis preneur... Merci. |
tu trouveras pas de script traitant de cela parce que c'est juste une question de logique.
il faut juste réfléchire un peut. si tu comprend le principe des parametre/variable, générer un menu select, et le sql ben tu as tous les élément pour faire ce que tu souhaite.
Marsh Posté le 08-02-2005 à 14:01:14
et sans formulaire ni bouton ok, c possible sans javascript???
Marsh Posté le 08-02-2005 à 14:02:04
Sans javascript, non, t'es obligé d'avoir un formulaire avec bouton.
D'ailleurs même avec javascript, c'est obligatoire de passer par du php derrière, donc dans tous les cas faut envoyer la valeur de ton select
Marsh Posté le 08-02-2005 à 14:04:30
geor a écrit : comment rafraichir sans bouton ok en php??? |
Est-ce que tu as lu mes précédents post ?
TOUJOURS FOUTRE UN BOUTON OK §§§ /FOU/
Tous le monde n'a pas javascript, tout le monde ne choisis pas les valeurs par la souris, faut être accessible à tous. Donc tu met un bouton ok
Marsh Posté le 08-02-2005 à 16:30:05
bon, sur 'conseil' de mon supérieur, j'ai utilisé javascript...
mes liste fonctionnent parfaitement bien que j'ai eu un peu de mal...
Je vous en remercie tous pour vos conseils.
Il ne me reste plus qu'une chose a voir, je cherche à cacher ma 2ème balise tant que un élément de la première n'a pas été selectionné.
Si quelqu'un sait faire ca, merci de me donner un ou deux petit truc...
Merci encore à tous.
Marsh Posté le 08-02-2005 à 16:32:01
C'est qui ton supérieur ???
Amenez-moi la pelle à clous /MECHANT/ FOU/
Marsh Posté le 08-02-2005 à 16:38:12
c un supérieur...
1ère Règle: Ton supérieur a tjr raison.
2ème règte: kan il a tor, se référer à la règle 1
3ème règle: Si t'es pas content, la porte reste ouverte, même en hiver...
Donc, pas trop le choix...
Si quelqu'un as une réponse, concernant la liste à cacher...
Marsh Posté le 08-02-2005 à 16:40:36
4ème règle : ton supérieur n'a jamais raison, il n'y connait jamais rien
Et voilà encore une fois, l'accessibilité ruinée
Marsh Posté le 08-02-2005 à 16:44:20
En CSS, avec display: none;, puis display: inline; pour le réafficher (sachant que <select> est une balise inline par défaut)
Marsh Posté le 08-02-2005 à 16:52:05
Ben en javascript, ça va être :
document.getElementById('id_de_ton_select').style.display = 'none'; |
Marsh Posté le 08-02-2005 à 17:02:41
Bon j'ai lu vite fait le topic, voici mon avis :
Tu créés une première liste <select>, avec un bouton valider, ainsi qu'un eventuel script qui fasse un auto-submit lors d'un changement, comme ça tu as ce que tu voulais au départ, mais tout en contentant les personnes n'ayant pas JS
++
Marsh Posté le 08-02-2005 à 17:03:17
j'ai juste du mal a m'en servir... vu que j'ai mis mon javascript au début, je ne sais trop ou placer
document.getElementById('id_de_ton_select').style.display = 'none';
et
document.getElementById('id_de_ton_select').style.display = 'inline';
.
.
.
Marsh Posté le 08-02-2005 à 17:09:24
j'ai juste du mal a m'en servir... vu que j'ai mis mon javascript au début, je ne sais trop ou placer
document.getElementById('id_de_ton_select').style.display = 'none';
et
document.getElementById('id_de_ton_select').style.display = 'inline';
Je vous donne mon script:
<?php
// connection à la base de donnée QuiFaitQuoi via la page de connection : connectionmysql.php
include "connectionmysql.php";
// Connection();
?>
<script language="JavaScript">
function selectTypePers(){
var Dem =new Array();
<?php
global $sqlDB,$sqllink,$sqlhost,$sqllogin,$sqlpasswd;
$sqllink = mysql_pconnect($sqlhost,$sqllogin,$sqlpasswd);
@mysql_select_db("$sqlDB",$sqllink) or die("CONNEXION à MYSQL IMPOSSIBLE.<BR>Vérifiez les paramètres de connexion dans mysql.php" );
$sql = "SELECT t1.NumTYPEPERS, t1.TypePers,t2.DEMANDES, t2.ORGCOMD FROM `personne` t1,`demandes` t2
where t1.NumTYPEPERS = t2.ORGCOMD";
$ReqLog = mysql_query($sql) or die("toto" ) ;
//creation des listes
while ($col = mysql_fetch_row($ReqLog)){
echo "var colonne = new Array(\"$col[1]\",\"$col[2]\" );\n";
echo "Dem[Dem.length]=colonne;\n";
}
?>
var i,ind,val,long;
document.forms["frmdem"].DEMANDES.selectedIndex = 0;
//vider la liste
while(document.forms["frmdem"].DEMANDES.options[1])
document.forms["frmdem"].DEMANDES.options.remove(1);
long=1;
//selection d'une ligne ds la liste
ind=document.forms["frmdem"].TypePers.selectedIndex;
val=document.forms["frmdem"].TypePers.options[ind].text;
for(i=0;i<Dem.length;i++){
if(Dem[i][0] == val){
op = new Option(Dem[i][1],Dem[i][1]);
document.forms["frmdem"].DEMANDES.options[long]=op;
long++;
// op = new Option(GGR[i][0],GGR[i][0]);
// document.forms["form1"].choix_GGR.options[long]=op;
}
}
}
</script>
<html>
<head>
<title>QuiFaitQuoi???</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body bgcolor="#EF7D0C">
<form action="" method="get" name="frmdem">
<div align="center" bgcolor="#FFFFFF" >
<table width="100%" height="107" border="0" bgcolor="#CCCCCC">
<tr>
<td width="23%" rowspan="3"><img src="logo%20EGD22%2012%202004.jpg" width="178" height="80"></td>
<td width="58%" height="54"><div align="center"><strong><u><font color="#0000CC" size="+2">Bienvenue
sur le site de Qui Fait Quoi. </font></u></strong></div>
<div align="center"></div></td>
<td width="19%" rowspan="3"><div align="right"><strong><strong><img src="../images/hommequifaituntrou.gif" width="97" height="92"></strong></strong></div></td>
</tr>
<tr>
</tr>
<tr>
<td height="22"><strong>
<center>
<strong><u><font color="#0000cc" size="+1">DEMANDE</font></u></strong>
</center>
</strong></td>
</tr>
</table>
<table width="100%" height="14" border="0" bgcolor="#FFFFCC">
<tr>
<td width="103%" height="10"><center>
<img src="../images/ligne%20de%20construction.gif" width="600" height="8"></center></td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td width="30%"><div align="right">Êtes-vous:</div></td>
<td width="70%">
<?php
echo '<select size=1 name="TypePers" OnChange="selectTypePers()">';
echo '<option value="-1" selected >Choisir une sélection</option>';
// Récupération des informations
$sql = "SELECT TypePers FROM Personne";
$ReqLog = mysql_query($sql);
while ($resultat = mysql_fetch_row($ReqLog)) {
echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';
}
echo '</select>';
?>
</tr>
<tr>
<td><div align="right">Votre demande concerne:</div></td>
<td>
<?php
echo '<select size=1 name="DEMANDES">';
echo '<option value="-1" selected >Choisir une sélection</option>';
// Récupération des informations
$sql = "SELECT distinct DEMANDES FROM demandes";
$ReqLog = mysql_query($sql);
while ($resultat = mysql_fetch_row($ReqLog)) {
echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';
}
echo '</select>';
?>
</td>
</tr>
<tr>
<td><div align="right">Votre commune est:</div></td>
<td>
<?php
echo '<select size=1 name="Commune" OnChange="selectTypePers()">';
echo '<option value="-1" selected >Choisir une sélection</option>';
// Récupération des informations
$sql = "SELECT distinct commune FROM COMMUNE";
$ReqLog = mysql_query($sql);
while ($resultat = mysql_fetch_row($ReqLog)) {
echo '<option value="'.$resultat[0].'">'.$resultat[0].'</option>';
}
echo '</select>';
?>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
Marsh Posté le 09-02-2005 à 09:42:20
a la fin d'où? du javascript? et lequel, le none ou le inline???
Marsh Posté le 08-02-2005 à 09:09:16
Bonjour, j'aurais souhaité faier 2 listes déroulantes sur une même page mais l'une dépendant de l'autre, je m'explique:
Quand l'utilisateur aura sélectionné un élément dans la première liste, la deuxième apparaîtera avec différentes info concernant la première selection.
Une fois cette deuxième sélection faite, un résultat est obtenu.
Je ne sais si je dois utiliser du php ou du javascript, mais dans les deux cas, je suis novice...
Merci d'avance pour vos aides...