encore un probleme de selected

Eléphant du PHP | 299 Messages

12 juil. 2010, 21:50

salut a tous, alors mon probleme va vite etre expliqué:

si ma variable dans l' url ne vaut rien ,, (c=bla=v=)

alors c' est "dans le monde qui est selectionné, je comprned pas pourquoi!
					<form>
                    <select name="v" method="get" action="index.php" onchange='submit()'>
					<option value="wld" <?php if(isset($v) && $v == "wld"){ echo  'selected="selected"'; } ?>>Dans le monde</option>
					<option value="fr" <?php if(isset($v) && $v == "fr"){ echo  'selected="selected"'; } ?>>En France</option>
					<option value="ttc" <?php if(isset($v) && $v == "ttc"){ echo  'selected="selected"'; } ?>>Toutes les communes</option>
					<option disabled style="background-color:#CCFFFF" <?php if(!isset($v) && ($v == "")){ echo  'selected="selected"'; } ?>>Dans votre commune</option>
					      <?php
						  $l2 = mysql_query('SELECT distinct * FROM villes ORDER BY ville ASC')or die(mysql_error());
						  while ($l = mysql_fetch_array($l2))
						  {
						  $selected=($l["ville"]==$_GET["v"])?" selected":"" ;
						  
						  echo '<option '.$selected.'>'.$l["ville"].'</option>';
					      }
					      ?>
                    </select>
                        </form>

ViPHP
ViPHP | 5462 Messages

12 juil. 2010, 21:52

la première est sélectionné par default

Eléphant du PHP | 299 Messages

12 juil. 2010, 22:39

Oui je suis d' accord, mais pourquoi ?

dans cette partie
                                                  $l2 =  mysql_query('SELECT distinct * FROM villes ORDER BY ville ASC')or die(mysql_error());
                                                  while ($l = mysql_fetch_array($l2))
                                                  {
                                                  $selected=($l["ville"]==$_GET["v"])?" selected":"" ;
                                                 
                                                  echo '<option '.$selected.'>'.$l["ville"].'</option>';
                                              }
il faudrait que je puisse rajouter une condition si v= rien alors "dans cette commune" sinon v= la ville selectionnée

ViPHP
ViPHP | 5462 Messages

12 juil. 2010, 22:47

c'est le html qui est comme ca, si y'a rien en selected c'est le premier élément qui s'affiche c'est logique, tu peux créer un autre premier élément qu'a pas de valeur genre : "sélectionner blabla" :wink:

Eléphant du PHP | 299 Messages

12 juil. 2010, 22:55

Non ca ne peut pas marche, mes liens sont de type c=infos&v=<?php echo $ville; ?>

ca permet de garder la valeur selectionnée.

Il faut que je trouve le moyen de faire comme j' ai dit, mais je suis en train de tout melanger, mais bon je vais aller me coucher on verra demain :)

Eléphant du PHP | 299 Messages

13 juil. 2010, 19:32

Bon ben voila, je pete un cable. Je ne vois aucune explication logique pour que quand je clique sur le lien d' accueil et sur "toute l" actualité", la liste reste bien sur "dans votre commun", par contre quand je clique sur faits d'hiver (fd), divertissement (d) ou sports (sp), la liste change pour se metre sur "dans le monde". Je craque, je ne trouve pas d' explication logique. La seule difference et que dans les liens posant problemes envers la liste, l' url rajoute la variable v= qui reste NULL si on n' a pas choisi de ville. Mais ca ne devrait pas poser souci! HAAAAAAAA!!!!

Voici les liens:
                    <td valign="middle"><img src="images/menu/puce.png" width="10" height="10" /></td>
                    <td valign="middle"><a href="?c=fd&v=<?php echo $v; ?>">Faits divers </a></td>
                  </tr>
                  <tr align="left">
                    <td valign="middle"><img src="images/menu/puce.png" width="10" height="10" /></td>
                    <td valign="middle"><a href="?c=d&v=<?php echo $v; ?>">Divertissements</a></td>
                  </tr>
                  <tr align="left">
                    <td valign="middle"><img src="images/menu/puce.png" width="10" height="10" /></td>
                    <td valign="middle"><a href="?c=sp&v=<?php echo $v; ?>">Sports</a></td>


					<form>
                    <select name="v" method="get" action="index.php" onchange='submit()'>
					<option value="wld" <?php if(isset($v) && $v == "wld"){ echo  'selected="selected"'; } ?>>Dans le monde</option>
					<option value="fr" <?php if(isset($v) && $v == "fr"){ echo  'selected="selected"'; } ?>>En France</option>
					<option value="ttc" <?php if(isset($v) && $v == "ttc"){ echo  'selected="selected"'; } ?>>Toutes les communes</option>
					<option disabled style="background-color:#CCFFFF" <?php if(!isset($v) && ($v == "")){ echo  'selected="selected"'; } ?>>Dans votre commune</option>
					      <?php
						  $l2 = mysql_query('SELECT distinct * FROM villes ORDER BY ville ASC')or die(mysql_error());
						  while ($l = mysql_fetch_array($l2))
						  {
						  $selected=($l["ville"]==$_GET["v"])?" selected":"" ;
						  
						  echo '<option '.$selected.'>'.$l["ville"].'</option>';
					      }
					      ?>
                    </select>
                        </form> 


<?php
		if(!isset($_GET['c']))
		{
		$actu2 = mysql_query('SELECT * FROM actus ORDER BY id DESC')or die(mysql_error());	
		}
		
		
		elseif(isset($_GET['c'])&&($_GET['c'] == 'ttactu')&&(!isset($_GET['v'])))
		{
		$actu2 = mysql_query('SELECT * FROM actus ORDER BY id DESC')or die(mysql_error());	
		}
		
		
		elseif(isset($_GET['c'])&&($_GET['c'] == 'ttactu'))
		{
		$actu2 = mysql_query('SELECT * FROM actus ORDER BY id DESC')or die(mysql_error());	
		}
		
		
		elseif(isset($_GET['c'])&&($_GET['c'] == 'fd')&&(isset($_GET['v'])))
		{
		$actu2 = mysql_query('SELECT * FROM actus WHERE rubrique = "fd" AND ville = $v ORDER BY id DESC')or die(mysql_error());	
		}
		
		
		elseif(isset($_GET['c'])&&($_GET['c'] == 'd'))
		{
		$actu2 = mysql_query('SELECT * FROM actus WHERE rubrique = "d" ORDER BY id DESC')or die(mysql_error());	
		}
		
		
		elseif(isset($_GET['c'])&&($_GET['c'] == 'sp'))
		{
		$actu2 = mysql_query('SELECT * FROM actus WHERE rubrique = "sp" ORDER BY id DESC')or die(mysql_error());	
		}
		?>

Eléphant du PHP | 299 Messages

13 juil. 2010, 20:07

Hooo j' ai enfin trouvé! que d' effort!!!!!!

probleme de logique, le resultat est la pourtant!!!

bon et bien voila, ha oui! dernier souci un peu plus compliqué et je ne vous embete plus!!!

quand je veux passer dans le formulaire une url comme ca:

action="c=bla&v"

je me retrouve au final avec des caracteres speciaux dans l' url, je suis piegé!

j' ai essayé rawurldecode urldecode avec encode aussi, je crois qu' il n' y a plus de solution.

Bon ben tant pis, je vais reflechir sur une facon de tricher, merci pour votre aide les amis , je vous tiens au courant, on sait jamais, ca peut servir a quelqu'un!

ViPHP
ViPHP | 5462 Messages

13 juil. 2010, 20:11

tu peux passé des tableaux via les paramètres ;)

genre :
action['c']=bla&action['v']=truc

Eléphant du PHP | 299 Messages

13 juil. 2010, 20:18

Des tableaux? Donc faudrait que je parte sur un array?

parce que je pensai modifier cette partie:
					      <?php
						  $l2 = mysql_query('SELECT distinct * FROM villes ORDER BY ville ASC')or die(mysql_error());
						  while ($l = mysql_fetch_array($l2))
						  {
						  $selected=($l["ville"]==$_GET["v"])?" selected":"" ;
						  
						  echo '<option '.$selected.'>'.$l["ville"].'</option>';
					      }
					      ?>
mais si je fais un :
$selected="c="$c"&"($l["ville"]==$_GET["v"])?" selected":"" ;
Ben il aime pas du tout, je continue mes recherches!

ViPHP
ViPHP | 5462 Messages

13 juil. 2010, 20:23

le problème viens de ton "action" non ?
si tu fais un print_r($_GET) ca donne quoi ?

Eléphant du PHP | 299 Messages

13 juil. 2010, 21:42

En fait c' est la synthaxe qui est pas bonne, je trouve pas la bonne facon de l' ecrire!

ben ca me donne mes deux variables v et c si les deux sont declarées :/

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 juil. 2010, 09:55

J'ai pas tout relu, mais à priori il y a beaucoup plus simple :)
Je ne vois aucune explication logique pour que quand je clique sur le lien d' accueil et sur "toute l" actualité", la liste reste bien sur "dans votre commun"
if (!isset($_GET['v']) && ...) // si v n'est pas défini dans l'url
A partir de là tu peux tester si l'option est "dans votre commune" et que v n'est pas définie pour afficher un selected, ou tester si v est définie, en fonction de sa valeur, sélectionner la bonne option :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 299 Messages

14 juil. 2010, 14:38

c' est pas ce qu ej' ai fait? :p
        <option value="wld" <?php if(isset($v) && $v ==  "wld"){ echo  'selected="selected"'; } ?>>Dans le monde</option>
                                        <option value="fr" <?php if(isset($v) && $v == "fr"){ echo  'selected="selected"'; } ?>>En France</option>
                                        <option value="ttc" <?php if(isset($v) && $v == "ttc"){ echo  'selected="selected"'; } ?>>Toutes les

ViPHP
AB
ViPHP | 5818 Messages

14 juil. 2010, 17:09

Une remarque, pour simplifier la récupération des variables de ton formulaire pourquoi ne pas avoir employé la méthode post plutôt que get ?

Eléphant du PHP | 299 Messages

14 juil. 2010, 19:49

Pour garder justement les valeurs plus facilement, non?