[php] Mélange 2 code sur liste déroulante

papish Messages postés 11 Statut Membre -  
 horju -
Bonjour a tous,

J'ai un très gros problème voila j'ai une liste déroulante qui affiche des formulaire lorsque qu'on clic dessus
Voici le code:

<?php
$connexion=mysql_connect('localhost','root',"") or die ("Connexion impossible.");
$db=mysql_select_db('vigicontrole',$connexion) or die ("Base de données non accessible.");

echo '<p>Choisissez un produit:</p>';

echo"<form name='form1' action='listephp.php' method='POST'>";
echo '<select name="PDT" size=7 id="produit" onChange="this.form.submit()">';

$resultat=mysql_query("select PROD from produit order by PROD") or die ("Requête non executée.");

while ($ligne=mysql_fetch_array($resultat))
{

$selected=($ligne["PROD"]==$_POST["PDT"])?" selected":"" ;
echo '<option '.$selected.'>'.$ligne["PROD"].'</option>';


}
echo '</select>';
//echo '<input type="submit" value="Afficher" name="go">';
echo '<noscript><input type="submit" value="Afficher" /></noscript>';






echo '</form>';

if(!isset($_POST['PDT']))
{
exit;
}



//Les lignes suivantes affichent le détail d'un produit
// si l'utilisateur en a choisi un
$PDT = $_POST['PDT'];
$resultat2 = mysql_query("Select * from produit where PROD='$PDT'") or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);

echo "<br>";
echo "<br>";



mysql_close($connexion);
?>

Et ensuite j'ai un code qui supprimer la valeur sélectionner a l'aide d'un bouton supprimer.

Voila mon problème j'aimerai mélanger les deux codes pour les avoir sur une page

Si quelqu'un pourrait m'aider ça serait super gentil

ps: voici mon code supprimer

<h3>Supprimer un produit</h3>
<form action="listephp.php" method="POST">
<p>Sélectionnez un produit à supprimer</p>

<input type="submit" value="Supprimer" name="supprimer"/>
</form>
<?php

if(isset($_POST['PDT']))

{
$rep = $_POST['PDT'];

echo 'Vous avez bien supprimer le produit sélectionné';

/* Debug */

$requete = "DELETE FROM produit WHERE id_produit = '$rep'";

//echo $requete;

mysql_query($requete) or die (mysql_error());

/* Fin Debug */

}

//else

{

echo 'Erreur';

}


mysql_close($connexion);
?>
A voir également:

6 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
tu testes quel bouton a téé cliqué:

if(isset($_POST['supprimer'])){ //entre crochets doit correspondre au name du bouton
//ta partie de code supprimer

}

if(isset($_POST['afficher'])){
//ta partie de code afficher
}
0
papish Messages postés 11 Statut Membre
 
Merci Alain 42 de ta réponse je viens justement de tester ta solution mais cela ne marche pas, ca me créer un 2eme bouton supprimer quand le clic sur celui ci.

Peut être que je n'ai pas mit ton code au bonne endroit je continue a chercher.

Merci
0
papish Messages postés 11 Statut Membre
 
bonjour, j'ai toujours le meme probléme j'ai essayer la méthode de alain42 mais cela ne marche pas si quelqu'un pourrait maider ca serait super cool.

Je met le code avec la methode de alain42 qui n'affiche rien!

<html>

<body>
<form action="code.php" method="POST">
<?php



if(isset($_POST['Afficher'])){



$connexion=mysql_connect('localhost','root',"") or die ("Connexion impossible.");
$db=mysql_select_db('vigicontrole',$connexion) or die ("Base de données non accessible.");

echo '<p>Choisissez un produit:</p>';

echo"<form name='form1' action='listephp.php' method='POST'>";
echo '<select name="PDT" size=7 id="produit" onChange="this.form.submit()">';

$resultat=mysql_query("select PROD from produit order by PROD") or die ("Requête non executée.");

while ($ligne=mysql_fetch_array($resultat))
{

$selected=($ligne["PROD"]==$_POST["PDT"])?" selected":"" ;
echo '<option '.$selected.'>'.$ligne["PROD"].'</option>';


}
echo '</select>';
//echo '<input type="submit" value="Afficher" name="go">';
//if(isset($_POST['Supprimer'])){ //entre crochets doit correspondre au name du bouton
//ta partie de code supprimer
//echo '<input type="submit" value="Supprimer" name="Supprimer">';
//}

//if(isset($_POST['Afficher'])){
//ta partie de code afficher
//echo '<noscript><input type="submit" value="Afficher" name="Afficher" /></noscript>';
//}
echo '<noscript><input type="submit" value="Afficher" /></noscript>';






echo '</form>';

if(!isset($_POST['PDT']))
{
exit;
}



//Les lignes suivantes affichent le détail d'un produit
// si l'utilisateur en a choisi un
$PDT = $_POST['PDT'];
$resultat2 = mysql_query("Select * from produit where PROD='$PDT'") or die ("Requête non executée.");
$ligne2 = mysql_fetch_array($resultat2);

echo "<br>";
echo "<br>";



mysql_close($connexion);

}
if(isset($_POST['Supprimer'])){ //entre crochets doit correspondre au name du bouton


if(isset($_POST['liste']))

{
$rep = $_POST['liste'];

echo 'Le produit sélectionner a bien été supprimer';

/* Debug */

$requete = "DELETE FROM produit WHERE id_produit = '$rep'";

echo $requete ;

mysql_query($requete) or die (mysql_error());

/* Fin Debug */

}
echo '<input type="submit" value="Supprimer" name="Supprimer">';

//else

//{

//echo 'Erreur';

//}


mysql_close($connexion);


}
?>
</form>
</body>
</html>
0
Alain_42 Messages postés 5413 Statut Membre 894
 
qqs erreurs de principe:

tu mets <form action="code.php" method="POST">

puis dans ce même formulaire tu mets:

echo"<form name='form1' action='listephp.php' method='POST'>";

la ça va coincer

ensuite:

echo '<noscript><input type="submit" value="Afficher" /></noscript>'; pouqoui ce <noscript> en php c'est pour du kjavascript


cette page tu l'a nomme comment ?

elle est appelée depuis une autre page qui contient les boutons Afficher et Supprimer ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
papish Messages postés 11 Statut Membre
 
Merci alain42 de me répondre le <noscript> sert a afficher dans des formulaires les données selectionner par un clic.

cette page ce nomme code.php et tous les codes sont sur la meme page!

je vais corriger les erreurs que tu ma faite remarqué! merci!
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Je t'ai modifié pas mal de choses avec des commentaires:

<html>

<body>
<!--  debut du formulaire qui sera affiché systématiquement à chaque chargement de la page-->
<form name="form1" action="code.php" method="POST">
<?php
$connexion=mysql_connect('localhost','root',"") or die ("Connexion impossible.");
$db=mysql_select_db('vigicontrole',$connexion) or die ("Base de données non accessible.");
$resultat=mysql_query("select PROD from produit order by PROD") or die ("Requête non executée.");
?><p>Choisissez un produit:</p>
<p>
<?php

// generation de la liste déroulante:
echo '<select name="PDT" size=7 id="produit" >';
while ($ligne=mysql_fetch_array($resultat)){
	$selected=($ligne["id_produit"]==$_POST["PDT"])? " selected" : "" ;
	echo "<option value='".$ligne['id_produit']."' ".$selected.">".$ligne['PROD']."</option>"; 
	//attention dans option il faut ABSOLUMENT value=   c'est ce qui est envoyé par le formulaire, ici je t'ai mis l'id_produit
}
echo '</select>';

?>
</p>
<input type="submit" value="Afficher" name="Afficher"><br />
<!-- le name des boutons sert à le tester ensuite donc si tu veux tester 'Afficher il faut que son name soit égal à afficher et pas à go -->
<input type="submit" value="Supprimer" name="Supprimer">
</form>
<!-- fin du formulaire liste déroulante et boutons -->

<?php

// partie traitement php suite à clic sur un des deux boutons
//la page code.php s'appelle elle même 

/// clic sur bouton Afficher
if(isset($_POST['Afficher'])){
	//ta partie de code afficher
	//Les lignes suivantes affichent le détail d'un produit
	// si l'utilisateur en a choisi un
	$id_produit = $_POST['PDT'];
	$resultat2 = mysql_query("SELECT * FROMproduit WHERE id_produit='$id_produit'") or die ("Pb avec la requette:".mysql_error());
	$ligne2 = mysql_fetch_array($resultat2);
	//ci dessous tu mets entre les crochets les champs que tu veux afficher
	echo $ligne2['']"<br>";
	echo $ligne2['']"<br>";

}

///partie Supprimer:

if(isset($_POST['Supprimer'])){ 
		$id_produit = $_POST['PDT'];

	$requete = "DELETE FROM produit WHERE id_produit = '$id_produit'";
	//echo $requete ;
	$suppression=mysql_query($requete) or die (mysql_error());
	
	if($suppression){
		//si la suppression est effective:
		echo "La suppression du produit id produit: $id_produit a &eacute;t&eacute; effectu&eacute;e avec succc&egrave;s ! ";
	}else{
		echo "Pb de suppression du produit id produit: $id_produit ! ";

	}

}

//fermeture connexion base
mysql_close($connexion);

?>

</body>
</html>
0
horju
 
bonsoirj'ai essai le code que tu as proposé il ne marche pas avec mes tables
merci
0