[php] liste déroulante

angeblanc22 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
angeblanc22 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
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 19261 Date d'inscription   Statut Webmaster Dernière intervention   63 277
 
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   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention   6
 
j'ai compris le var_export, mais je ne vois pas pourquoi ça marche pas...
0
angeblanc22 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   6
 
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   Statut Membre Dernière intervention   1 011 > angeblanc22 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   6 > Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention  
 
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