[php] liste déroulante

Fermé
angeblanc22 Messages postés 31 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 27 janvier 2009 - 27 févr. 2007 à 15:56
angeblanc22 Messages postés 31 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 27 janvier 2009 - 2 mars 2007 à 10:13
Bonjour,
je suis en stage et dans mon projet, il faudrait que je fasse une liste déroulante pour permettre de choisir une donnée parmis celles stockées dans la base de données postgresql.

voilà ce que j'ai fait :
	<SELECT NAME='marque'><?php
	$reql = new record($sql);
	$reql = pg_query("SELECT nommarque FROM marque ORDER BY nommarque");
	while ($nommarque=pg_fetch_object($reql))
	{
		echo '<option value=',$nommarque,'>',$nommarque,'</option>' ;
	}
	?>
	</SELECT> 


mais je ne comprends pas ce qu'il ne marche pas.

Pourriez-vous m'aider s'il vous plait ??

Merci d'avance
A voir également:

1 réponse

Jean-François Pillou Messages postés 18301 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 274
27 févr. 2007 à 16:04
Essaye ceci et tu comprendras :

<?
	$reql = new record($sql);
	$reql = pg_query("SELECT nommarque FROM marque ORDER BY nommarque");
	while ($nommarque=pg_fetch_object($reql))
	{
		echo var_export($nommarque);
	}
	?>

0
angeblanc22 Messages postés 31 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 27 janvier 2009 6
27 févr. 2007 à 16:14
merci pour ta réponse, mais rien ne saffiche dans la liste elle est toute blanche... et du coup je comprend pas ^^
0
angeblanc22 Messages postés 31 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 27 janvier 2009 6
27 févr. 2007 à 17:00
j'ai compris le var_export, mais je ne vois pas pourquoi ça marche pas...
0
angeblanc22 Messages postés 31 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 27 janvier 2009 6
2 mars 2007 à 09:17
voilà, j'ai mis ça :

echo $essai = pg_query("SELECT nommarque FROM marque ORDER BY nommarque");
		echo '<SELECT NAME="marque">';
		$reql = new record($sql);
		$reql = pg_query("SELECT nommarque FROM marque ORDER BY nommarque");
		while ($nommarque=pg_fetch_assoc($reql))
		{
			echo "<option>".$nommarque->nommarque."</option>";
		}
		echo '</SELECT>';


et ça marche...
mais depuis que j'ai réussi à faire une liste déroulante, je souhaiterai en faire une autre qui dépende de la première, voilà ce que j'ai fait en gros, car ça c'était un exemple :


<select name="select1" onChange="monformulaire.submit();">
<option value="toto">toto</toto>
</select>

<?php
if(isset($_POST['select1']))
{
?>

<select name="select2">
....

<?php
}
?>



mais rien que

onChange="monformulaire.submit();"


ne marche pas...

Si quelqu'un aurai une idée, je vous remercie beaucoup
AngeBlanc22
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > angeblanc22 Messages postés 31 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 27 janvier 2009
2 mars 2007 à 10:01
Bonjour,

C'est normal que dans l'exemple que tu donnes, cela ne marche pas. En effet, tu n'as qu'une seule <option> ! Donc la valeur de la liste ne peut jamais changer, et du coup, onchange ne se déclenche pas.

De plus, mets document.monFormulaire.submit(), ce sera mieux. (et assure toi que ta balise <form> contienne <form name="monFormulaire">, bien sûr !)

Xavier
0
angeblanc22 Messages postés 31 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 27 janvier 2009 6 > Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021
2 mars 2007 à 10:13
merci, en fait j'ai changé un truc et ça donne ça :
<?php
require_once ("classes/sql.pg.class.php");
require_once ("classes/record.pg.class.php");
?>
<form method='post' action='Ajout_Produit.php' name='produit_form' enctype="multipart/form-data" >
<br><br><h2>Insérer produit</h2>
<br><br>	
	<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
	<table border="0">
	<tr>
	<td>Nom produit<font color="#FF0000">*</font>
	</td>
	<td><input type="text" name="nomproduit" size="33">
	</td></tr><tr><td>&nbsp;</td><td>&nbsp;</td>
	</tr><tr >
	<td>Choix image<font color="#FF0000">*</font>
	</td>
	<td><input type="file" name="image">
	</td>
	</tr><tr><td>&nbsp;</td><td>&nbsp;</td>
	</tr><tr >
	<td>Choix de la marque<font color="#FF0000">*</font>
	</td>
	<td><?php
	// On se connecte sur Postgresql et sur la base de données
	$sql = new sql();
	
	$sql->s_server("localhost");
	$sql->s_login("postgres");
	$sql->s_base("truc");
	$sql->s_password("machin");
	if( ! $sql->connecte())
	{
		echo "Erreur de connexion à la base. \n";
		exit;
	}else
	{
		echo '<SELECT NAME="marque" onChange="produit_form.php.submit();"><option value=""></option>';
		$reql = new record($sql);
		$reql = pg_query("SELECT nommarque FROM marque ORDER BY nommarque");
		while ($nommarque=pg_fetch_object($reql))
		{
			echo "<option>".$nommarque->nommarque."</option>";
		}
		echo '</SELECT>';
	}
?>
	</td>
	</tr><tr><td>&nbsp;</td><td>&nbsp;</td><?php
if(isset($_POST['marque']))
{?><tr >
	<td>Choix famille<font color="#FF0000">*</font>
	</td>
	<td>
<?php 	echo $_POST['marque'];
		echo '<select name="produit"><option value=""></option>';
		$reql = new record($sql);
		$reql = pg_query("SELECT nomfamille FROM familleprod, marque WHERE familleprod.libfamille = marque.libfamille AND nommarque = $marque ORDER BY nomfamille");
		while ($nomprod=pg_fetch_object($reql))
		{
			echo "<option>".$nomprod->nomprod."</option>";
		}
		echo '</SELECT>';
}
?>
	</td>
	</tr><tr><td>&nbsp;</td><td>&nbsp;</td>
	</tr><tr><td colspan="2" align="center"><br><br><input type="submit" name="produit" value="Insérer"><br></td></tr>
	</table>
</form>


voilà, du coup maintenant ça marche, masi pour qu'après cette liste, qu'on arrive à une page, du coup, j en esais pas si celle là est la bonne idée... merci pour ton aide
0