OnChange="javascript:submit();

Résolu/Fermé
inuits44 - 18 janv. 2012 à 11:41
 inuits44 - 1 févr. 2012 à 15:10
Bonjour,

J'affiche un menu déroulant avec différentes dimensions collectées dans ma base de données.
En fonction de la sélection des dimensions, le prix s'affiche.
Sauf que mon menu déroulant retourne à ma valeur initiale soit "sélectionner une dimension" alors que je voudrais garder les dimensions choisies.

<form name="PrixProd">
<select name="lstcat" onChange="javascript:submit();">
<option value="0">Sélectionner une dimension</option>
<?
//Connexion à la base

// connection avec MySQL


$Jeu="SELECT IdProduit, NomProduit, PrixProduit, DimensionLargeur, DimensionLongueur, DimensionHauteur FROM PRODUITS WHERE CatProduit='TABLES'";
$JeuCat= mysql_query($Jeu);

while ($Ligne=mysql_fetch_array($JeuCat))
{
echo "<option value=$Ligne[IdProduit]";
if ($Ligne["IdProduit"]==$lstcat)
{
echo "SELECTED";
}
echo "> $Ligne[DimensionLargeur] $Ligne[DimensionLongueur] $Ligne[DimensionHauteur]</option>";
}
echo "</select>";
?>

</select>
</form>
<?
if (isset($lstcat))
{
$Mon="SELECT IdProduit, NomProduit, PrixProduit FROM PRODUITS WHERE IdProduit='$lstcat'";
$MonJeu = mysql_query ($Mon);
echo "<table><th> PRIX </th>";

while ($Ligne=mysql_fetch_array ($MonJeu))
{
echo "<tr>";
echo "<td align=center>";
echo $Ligne["PrixProduit"];
echo "</td>";
echo "</tr>";
}
echo "</table>";
}
?>

Merci

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 janv. 2012 à 13:49
voir les commentaires

<?php
//recup du choix dans la liste (cette partie doit être avant le form )
if(isset($_POST['lstcat'])){
	$lstcat=$_POST['lstcat'];
}else{
    //sinon init a 0
	$lstcat=0;
}
//ci dessous dans la balise formil faut method=  action= 
?>
<form name="PrixProd" method="post" action="">
<select name="lstcat" onChange="javascript:submit();">
<option value="0">Sélectionner une dimension</option>
<?
//Connexion à la base

// connection avec MySQL


$Jeu="SELECT IdProduit, NomProduit, PrixProduit, DimensionLargeur, DimensionLongueur, DimensionHauteur FROM PRODUITS WHERE CatProduit='TABLES'";
$JeuCat= mysql_query($Jeu);

while ($Ligne=mysql_fetch_array($JeuCat))
{
	//la on va tenir compte du choix pour mettre la ligne selected
	$option= "<option value=$Ligne[IdProduit]";
	if ($Ligne["IdProduit"]==$lstcat)
	{
	$option.=" selected"; //ne pas oublier l'espace devant selected 
	}
	$option.= "> $Ligne[DimensionLargeur] $Ligne[DimensionLongueur] $Ligne[DimensionHauteur]</option>";
	
	echo $option;
}
echo "</select>";
?>

</select>
</form>
<?
if (isset($_POST['lstcat']))
{
	$Mon="SELECT IdProduit, NomProduit, PrixProduit FROM PRODUITS WHERE IdProduit='$lstcat'";
	$MonJeu = mysql_query ($Mon);
	echo "<table>";
	echo "<tr><th> PRIX </th></tr>"; 
	//attention il faut absolument des <tr></tr> pour avoir une ligne de tableau 

	while ($Ligne=mysql_fetch_array ($MonJeu))
	{
		echo "<tr>";
		echo "<td align=center>";
		echo $Ligne["PrixProduit"];
		echo "</td>";
		echo "</tr>";
	}
echo "</table>";
}
?> 
1
Un grand MERCI car je n'aurais pas eu idéee de mettre isset ici.
0
C'est exactement ce que je voulais et ça fonctionne très bien. Merci
0
Ce menu déroulant fonctionne tres bien seul mais si je mets deux autres menus déroulant à la suite, je ne sais pas comment faire avec les submit et action.

Menu déroulant prix
Menu déroulant couleur assise
Menu droulant couleur structure et un choix de quantité.

Si je teste le premier seul ok
Si je teste les trois derniers ok

MENU 1
<?php
//recup du choix dans la liste (cette partie doit être avant le form )
if(isset($_POST['lstcatDim'])){
$lstcatDim=$_POST['lstcatDim'];
}else{
//sinon init a 0
$lstcatDim=0;
}
//ci dessous dans la balise formil faut method= action=
?>
<form name="PrixProd" method="post" action="">
<select name="lstcatDim" onChange="javascript:submit();">
<option value="0">Sélectionner une dimension</option>


MENU 2
<select name="lstcat">
<option value="0">--selectionner--</option>";

MENU 3
<select name="lstcatStructure">
<option value="0">--selectionner--</option>";

CHOIX 4
<input type="text" size="3" name="Qte" onKeyUp="javascript:couleur(this);">

BOUTON
<input type="submit" value="Ajouter au panier">

Merci
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 janv. 2012 à 18:57
<?php
//recup des 3 choix dans la liste (cette partie doit être avant le form )
//on va utiliser une autre methode la methode ternaire  ==> test si condition ? si oui valeur1 sinon valeur2 
$lstcatDim=isset($_POST['lstcatDim']) ? $_POST['lstcatDim'] : 0;
$lstcat=isset($_POST['lstcate']) ? $_POST['lstcat'] : 0;
$lstcatStructure=isset($_POST['lstcatStructure']) ? $_POST['lstcatStructure'] : 0;
}

?>
<form name="PrixProd" method="post" action="">
<select name="lstcatDim" onChange="javascript:submit();">
<option value="0">Sélectionner une dimension</option>
et la tu mets ta boucle avec le test sur  $lstcatDim pour selected comme fait précedement

MENU 2
<select name="lstcat" onChange="javascript:submit();">
<option value="0">--selectionner--</option>";
et la tu mets ta boucle avec le test sur  $lstcat pour selected comme fait précedement
MENU 3
<select name="lstcatStructure" onChange="javascript:submit();">
<option value="0">--selectionner--</option>";
et la tu mets ta boucle avec le test sur  lstcatStructure pour selected comme fait précedement
CHOIX 4
<input type="text" size="3" name="Qte" onKeyUp="javascript:couleur(this);">

BOUTON
<input type="submit" name="ajouter" value="Ajouter au panier">
0
Désolée de revenir dessus je n'arrive pas à envoyer mes variables avec le bouton vers la page add_to_caddy.php
MENU 1 menu deroulant avec boucle pour affiche PRIX
MENU 2 menu déroulant sans boucle $lstcat
MENU 3 menu déroulant sans boucle $lstcatStructure
MENU 4 type text $Qte

Merci
0