AdelineAda
Messages postés4Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention 4 septembre 2007
-
31 août 2007 à 09:46
Ankaa1988
Messages postés74Date d'inscriptionlundi 20 février 2006StatutMembreDernière intervention 2 août 2010
-
4 sept. 2007 à 19:26
Bonjour,
Je ne suis pas très forte en Javascrip et apparement un peu dépassée en php (je ne suis pas développeuse mais j'ai en charge les sites internet dans la société où je travaille).
J'ai un soucis qui pourrait se résoudre très vite si vous pourriez m'aider ...
Je vous explique ce que je dois faire sur le site où je travaille actuellement :
J'ai 2 listes déroulantes remplient dynamiquement par des requetes SQL.
Ma 2em liste apparait lorsque j'ai fait un 1er choix dans ma 1er liste déroulante.
Lorsque j'ai fait le choix dans ma 2em liste déroulante, le formulaire est lancé.
C'est pour cela que j'ai du me servir du javascript que je ne connais pas du tout.
J'ai donc cherché un script que j'ai adapté en remplissante mes listes grace à des requetes.
Jusque la tout va bien.
Mon soucis actuel, est que je dois garder le contenu de ma 1er liste lorsque j'ai déjà fait un 1er choix.
Tout ceux qui programme un peu en PHP sait que cela est possible grace à l'attribut "selected" de la balise <option> mais je suis ici dans un cas qui me dépasse puisque je ne comprend rien à la ligne correspondante. Et je ne saurais dire cela vient du javascript ou du php.
Pourriez vous m'aider à comprend quelle est la variable qui reprend la variable choisie ? et comment la passé dans mon selected lorsque qu'elle existe ?
Voici le code de la ligne que je ne comprend pas et qui contient le selected :
Et voici le code de ma page entière si cel peut vous aider à comprendre le fonctionnement :
<?php
echo("<?xml version="1.0" encoding="iso-8859-1"?>\n");
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = ""; // voir hébergeur
$admin = ""; // vide ou "root" en local
$mdp = ""; // vide en local
$base = ""; // nom de la BD
/* On récupère si elle existe la valeur de la région envoyée par le formulaire */
$idr = isset($_POST['region'])?$_POST['region']:null;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html xmlns="
http://www.w3.org/1999/xhtml
" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
<title>Sélectionner un département selon la région choisie</title>
<script>
function Lien (f)
{
i = f.elements['domaine'].selectedIndex;
if (i == 0) return;
top.location = 'domaine.php?page=dom®ion=' + f.elements['region'].value + '&domaine=' + f.elements['domaine'].value;
}
</script>
</head>
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
* car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_pconnect($serveur, $admin, $mdp);
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$sql1 = "SELECT `id_region`, `nom_region` FROM `region` ORDER BY `nom_region`";
$rech_regions = mysql_query($sql1);
$code_region = array();
$region = array();
/* On active un compteur pour les régions */
$nb_regions = 0;
if($rech_regions != false)
{
while($ligne = mysql_fetch_assoc($rech_regions))
{
array_push($code_region, $ligne['id_region']);
array_push($region, $ligne['nom_region']);
/* On incrémente de compteur */
$nb_regions++;
}
}
?>
<?php
mysql_free_result($rech_regions);
/* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les départements de cette région */ $sql2 "SELECT id_domaine, nom_domaine, id_region, region_domaine_ FROM domaine, region WHERE `id_region` ". $idr ." and region_domaine_ = id_region ORDER BY `nom_domaine`";
if($connexion != false)
{
$rech_dept = mysql_query($sql2, $connexion);
/* Un petit compteur pour les départements */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des départements */
$code_dept = array();
$nom_dept = array();
/* On va mettre les numéros et noms des départements dans les deux tableaux */
while($ligne_dept = mysql_fetch_assoc($rech_dept))
{
array_push($code_dept, $ligne_dept['id_domaine']);
array_push($nom_dept, $ligne_dept['nom_domaine']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
</form>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
}
else
{
/* Si on arrive là, c'est pas bon signe, il faut vérifier les
* paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.
Ankaa1988
Messages postés74Date d'inscriptionlundi 20 février 2006StatutMembreDernière intervention 2 août 2010 1 sept. 2007 à 19:40
désoler mais je ne vois pas ce que tu veux faire
apres l'envoie du formulaire on va où? on recharge la même page et
c'est la que tu veux que le choix de la premièer liste soit le meme que
précedement? c'est bien ca?
et tu veux faire passer quoi comme information par ton formulaire? les 2 choix des 2 listes?
AdelineAda
Messages postés4Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention 4 septembre 2007 4 sept. 2007 à 11:21
Bonjour Ankaa1988,
Bon alors,
Ma page ci-dessus est en include() sur ma page principale qui me montre les infos que je veux voir grace aux listes déroulantes.
Je souhaiterais que lorsque j'ai envoyé mon formulaire, donc lorsque j'ai déjà fait un choix dans ma 1er liste déroulante, ce choix reste en selected après l'envoi de mon formulaire.
Si vous avez d'autres questions ! N'hésitez pas ...
Cette modification sur le site commence à se faire urgente et je n'y arrive pas ... mais que je suis nulle ...
--Adeline-Infographiste--
www.cideo.fr - Cidéo, agence de communication
Ankaa1988
Messages postés74Date d'inscriptionlundi 20 février 2006StatutMembreDernière intervention 2 août 2010 4 sept. 2007 à 19:26
je n'ai pas lu ta page autant le dire car je n'ai pas le temps et j'en suis désolé... cependant si tu veux transmettre des infos après envoie de formulaire il faut utiliser le php (obligé)
donc je m'imagine un code du style:
donc tu as tes 2 elements selectionnés... du coup lorsque tu envoie le formulaire du récupère les valeurs selectionnés en php
en utilisant $_POST['liste1'] et $_POST['liste2']
puis en javascript tu utilises un simple if et une boucle
ie
script
for(a=0;a<nb d'elmt ds liste,a++){
if(a=<?php $_POST['liste1']; ?> )
{
document.form.nomliste.options[a].selected=true;
}
idem pour la 2
}
voila bon ce code est a verifié car la syntaxe doit être incorrect et a réadapter pour ton site mas il me semble que l'idée est la si j'ai bien tout compris...
++ et bon courage