URI et liste déroulante
D'après le message de JcbCreusois
- CODE PHP
- CODE JavaScript
- Formulaire HTML
- Code en entier
- Commentaires
- Télécharger le script `select.php` et le JavaScript: `jslib.js`
N.B.: le fichier s'appelle select.php dans l'exemple.
I. CODE PHP
<?php session_start(); // primordial if (!defined('SID2')) define ('SID2',session_name() . '=' . session_id()); // connexion à la base de données $gdb = mysql_connect() or die('Erreur de connexion: ' . mysql_error()); // fonction qui construit la liste déroulante // Paramètres: ressource vers la base de données // nom du lien (page web) function strMySQLOption($pdb,$pstrPagePHP) { $strRetour = ''; $strSQL = 'SELECT id,nom FROM tblTable'; // exécution if ( $result = @mysql_query($strSQL,$pdb)) { // boucle while ( $assoc = mysql_fetch_assoc($result) ) { $strRetour .= ' <option value="'.$pstrPagePHP.'?id='.$assoc['id'].'">'.$assoc['nom'].'</option>'."\n"; } mysql_free_result($result); } // retour des options... return $strRetour; } ?>
II. Fonction Javascript (jslib.js)
/* Fonction: GOTOURI() Va à la page identifée dans la liste et ajoute l'identifiant de session à l'URI. Paramètres: pselect : identifiant du select phidSession : champ avec le nom de la session et son id. Retour: aucun retour */ function gotouri(pselect,pstrSID) { var idx = pselect.selectedIndex; if (idx > 0 ) { var strUrl = pselect.options[idx].value; if (pstrSID != "") strUrl += '&' + pstrSID; self.location.href = strUrl; } else alert('Veuillez faire un choix au menu.'); }
III. Formulaire HTML
<form method="post" action="select.php"> <select name="selectname" onchange="gotouri(this,'<?=SID2 ?>');"> <option>==== Faites un Choix ====</option> <?php echo strMySQLOption($gdb,'detail.php'); ?> </select> </form>
N.B.: En souligné, les liens entre la page HTML, le script PHP et le script JavaScript.
IV. Code en entier
V. Commentaires
- N'oubliez pas de modifier la requête de sélection des champs.
- Si les champs ne sont pas id et nom, il faut changer les champs du tableau (dans la chaine de caractères aussi).
- N'oubliez pas de créer la page de référence (ici c'est detail.php).