8722 sujets

Développement web côté serveur, CMS

Bonjour, j'ai besoin d'un petit coup de pousse !

donc j'ai un formulaire de redirection en get et je dois récupérer 2 Valeur


<form action="re_offre_fitre.php" method="get" name="r444">
        <select name="cat">
          <?php do { ?>
          <option value="<?php echo $row_cat['id_cat'].'&dep='.$row_dep2['id_departement'] ; ?>"><?php echo $row_cat['cat']; ?></option>
          <?php } while ($row_cat = mysql_fetch_assoc($cat)); ?>
        </select>
        <input type="submit" name="" value="Recherche" />
      </form>
      


Vu le code je dois avoir comme réponse : ..re_offre_filtre.php?cat=*&dep=*


Smiley fache en réalité le navigateur m'affiche : ..re_offre_fitre.php?cat=3%26dep%3D67

j'ai modifier le & en &amp; ca ne marche pas
Modérateur
Salut,

- Do/while J'ai pas l'habitude de lire ce genre de syntaxe. En sortie, est ce que les options sont corrects ?

a écrit :
Vu le code je dois avoir comme réponse: ..re_offre_filtre.php?cat=*&dep=*


non.

En lisant ton code html, ça devrait être plutôt (un select et un submit):
..re_offre_filtre.php?cat=la%20valeur%20du%20champ%20

;)
Modifié par niuxe (02 Aug 2013 - 19:02)
Bonjour, oui les valeur son bonne en sortie sauf qu'il me replace le '&' et '='

Donc sur la page de résultat j'ai une erreur ! Smiley fache
Hello bibi67 et bienvenue, Smiley cligne

dans un formulaire en get le & est automatiquement rajouté entre chacune des variables. Pour t'en assurer il suffit de rajouter dans le form :
<input type="hidden" name="dep" value="<?php echo $row_dep2['id_departement']; ?>" />
et de remplacer l'alimentation de cat par :
<option value="<?php echo $row_cat['id_cat'] ; ?>"><?php echo $row_cat['cat']; ?></option>


A noter que d'après ton code je suppose que chaque id_cat correspond à un département (id_departement dans la table) donc tu aurais également pu n'envoyer que id_cat et refaire une requête dans la page de réception du formulaire...



Edit: en cas de besoin tu peux aussi passer les 2 variables en les concaténant puis les parser dans la page de réception du formulaire. Par exemple :

Envoi
	<select name="cat_dep">
		<?php do { ?>
		<option value="<?php echo $row_cat['id_cat'].'_'.$row_dep2['id_departement'] ; ?>"><?php echo $row_cat['cat']; ?></option>
		<?php } while ($row_cat = mysql_fetch_assoc($cat)); ?>
	</select>

Réception
$cat_dep = explode("_", $_GET['cat_dep']);
$cat = intval($cat_dep[0]);
$dep = intval($cat_dep[1]);

Modifié par Heyoan (03 Aug 2013 - 14:41)
quand tu dois debugger un formulaire pense a afficher les valeurs envoyé sur la page de traitement ça aide...