8795 sujets

Développement web côté serveur, CMS

Bonsoir à tous !!

Voila une fois de plus je vient demander de l'aide pour mon projet

Je vous expose mon problème :

Quand une personne acheté plusieurs jeux d'occasion du même vendeur le vendeur doit confirmer la vente. Je voudrais faire pour que le vendeur puisse ne valider par exemple que 1 produit sur 2 (par exemple parce que il ne possède plus un article). Donc quand la personne arrive sur la page valider_vente.php on lui demander les produits qu'il souhaite validé est voila mon problème :

Je sélectionne dans la BDD les articles qu'il faut confirmer dans le formulaire je c'est pas trop quoi utiliser des champ de type radio ou checkbox ? mon problème est surtout au niveau du traitement en php j'arrive pas à faire un bon raisonnement pour les traiter. Si je c'est combien il y a d'élément au total c'est pas un problème j'arrive à coder ma page mais la comme c'est dynamique je voit pas trop comment faire.

Merci d'avance de votre aide ! Smiley biggrin
Modifié par Viva25 (08 Mar 2010 - 08:05)
J'ai pensé à quelque choses comme :


<?php
	include('../connexion.php');
	$sql="SELECT v.idVente, v.idArticle, v.idMembre, v.idAcheteur, v.idCommande, titre_article FROM vente_terminee v
		  LEFT JOIN article a ON v.idArticle=a.idArticle
		  WHERE idCommande='".$_GET['idCommande']."' AND idMembre='".$_GET['idVendeur']."' AND v.etat_article='Confirmation' ";
	$result=mysql_query($sql);
		echo'<p style="text-align:center; font-size:14px;">Validation de la commande N°14</p>';
		echo'<br />';
		echo'<p>Veuillez sélectionné les produits que vous souhaiter validé</p>';
		echo'<form action="#" method="post">';
		echo'<div id="validvente">';
			echo'<ul>';
			while($ligne=mysql_fetch_assoc($result)){
				echo'<li>
					 	<label>'.$ligne['titre_article'].'</label>
						<span>
							<input type="checkbox" value="Valider" name="valider[]"> Valider
							<input type="checkbox" value="Valider" name="refuser[]"> Refuser
						</span>
					</li>';
			}
			echo'</ul>';
			echo'<li><br /><input type="submit" name="valider" /></li>';
		echo'</div>';
		echo'</form>';
?>


Le seul problème est que on peut choisir valider ou refuser sur chaque article ....

Modifié par Viva25 (05 Mar 2010 - 19:51)
Salut,

ben il y a plusieurs façons de faire :

* tu pourrais tout simplement générer un lien par produit :
<a href="confirmer.php?idvente=33">Confirmer la vente du produit 33</a>
et traiter la confirmation en récupérant $_GET['idvente']

* ou alors utiliser des INPUT checkbox :
<?php
if($_SERVER['REQUEST_METHOD']=='POST') {
	if(!empty($_POST['produit'])) {	// si au moins un produit confirmé...
		foreach($_POST['produit'] as $idproduit) {
			echo '<p>id produit confirmé : '.$idproduit.'</p>';
			// $sql = 'UPDATE... WHER id_produit='.intval($idproduit);
			// etc.
		}
	}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test</title>
<style type="text/css" media="screen">
.alerte {
	color: #FF0033;
	font-weight: bold;
}
</style>
</head>
<body>
<p>Cocher les produits confirmés :</p>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<?php
$produits = array(
	11	=>	'Produit 11',
	22	=>	'Produit 22',
	33	=>	'Produit 33'
); // j'utilise un array pour l'exemple mais en fait il s'agit d'une boucle while après SELECT des id produits
foreach($produits as $id=>$produit) {
	echo '<p><input type="checkbox" name="produit[]" id="produit'.$id.'" value="'.$id.'" checked="checked" />';
	echo '<label for="produit'.$id.'"> '.$produit.'</label></p>';
}
?>
	<p>
		<input type="submit" />
	</p>
</form>
</body>
</html>
D'accord je vais regarder ce soir car la je vais partir mais encore une fois merci à toi
Je te tien au courant
Alors voila je vient au nouvelle
Ton code me convient mais je voudrais qu'il y est une case Valider ou Refuser est c'est la mon souci .... Smiley bawling avec les chekbox on peut choisir les deux ...
Modifié par Viva25 (05 Mar 2010 - 23:38)
Si le problème est que tu ne sais pas comment récupérer les différents éléments d'un formulaire il faut revoir les bases. Smiley cligne

Par exemple :
<?php 
if($_SERVER['REQUEST_METHOD']=='POST') { 
	foreach($_POST['produit'] as $idproduit=>$checked) {
		if($checked) {
			echo '<p>id produit confirmé : '.$idproduit.'</p>'; 
			// $sql = 'UPDATE... WHERE id_produit='.intval($idproduit); 
			// etc. 
		} 
	} 
} 
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Test</title> 
</head> 
<body> 
<p>Cocher les produits confirmés :</p> 
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post"> 
<?php 
$produits = array( 
    11    =>    'Produit 11', 
    22    =>    'Produit 22', 
    33    =>    'Produit 33' 
); // j'utilise un array pour l'exemple mais en fait il s'agit d'une boucle while après SELECT des id produits 
foreach($produits as $id=>$produit) { 
    echo '<p>Confirmer le Produit <strong>'.$produit.'</strong> ? '; 
    echo '<input type="radio" name="produit['.$id.']" id="produit'.$id.'_oui" value="1" checked="checked" /><label for="produit'.$id.'_oui">Oui </label>'; 
    echo '<input type="radio" name="produit['.$id.']" id="produit'.$id.'_non" value="0" /><label for="produit'.$id.'_non">Non</label></p>'; 
} 
?> 
    <p> 
        <input type="submit" /> 
    </p> 
</form> 
</body> 
</html>

Modifié par Heyoan (06 Mar 2010 - 02:14)
salut heyoan

j'ai bien penser au name="produit['.$id.']" mais je voyait pas trop comment récupérais tous ça en php .... je vais essayer je te tien au courant
Encore merci de t'aide j'ai réussi à faire ce que je voulais grâce à toi encore merci