Garder <option> en mémoire...

Répondre
Keika
le 21/09/2006 à 02:28
Keika
resalut

voila, en relation direct avec mon précédent post (lier des tables...)

j'aimerai savoir comment faire pour que, dans un formulaire contenant <select><option>, je puisse selectionner plusieurs <option> tout en les gardant en mémoire pour additioner leurs prix...

je mets la partie du code qui m'interesse:
<?php

//On lance une requete SQL en selectionnant la table clients
$sql_recherche_stock = 'SELECT id, produit, prix FROM stock ORDER BY produit ASC;' ;

//On lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql_recherche_stock) or die('Erreur SQL !'.$sql.''.mysql_error());

//On affiche les résultats sous forme d'une liste
echo'<select name="stock">' ;
echo'<option selected value="">&nbsp;</option>' ;
//On va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {

//On affiche tous les résultats

echo'<option value="'.$data['prix'].'">'.$data['produit'].'</option>' ;

}

echo'</select>' ;

?>


Si je ne suis pas clair dites le.

Merci d'avance

K.
Le PHP --> C'est dur !
Bzh
le 21/09/2006 à 21:02
Bzh
Si tu valides ton formulaire les un après les autres, utilise une variable de sessions !!

Voili...
LA GLOBULE
le 21/09/2006 à 22:47
LA GLOBULE
Fait un :

<select multiple="multiple" name="stock" size="5">

Comme ca, tu pourras en selectionner plusieurs d'un coup.
Apres, libre à toi de traiter le truc en PHP (a la soumission du formulaire) ou en JS (en live) pour faire la somme.
Keika
le 22/09/2006 à 03:35
Keika
Merci LA_GLOBULE pour le multiple

par contre Bzh, j'ai essayé ca avec la variable de session:

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

$_SESSION['stock'] = array($_POST['stock']) ;

print($_SESSION['stock']) ;
} ?>


et ca me renvois "Array"... normal me diras-tu... cependant je ne vois pas comment faire comprendre au PHP qu'il y a plusieurs valeur de $_POST['stock']

meme juste avec:

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

$_POST['stock'];

print($_POST['stock']) ;
} ?>


ca ne me renvois qu'une seule valeur, la derniere selectionnée dans la liste...
Le PHP --> C'est dur !
anasha
le 05/10/2006 à 18:28
anasha
<?
$_SESSION['stock'][] = $_POST['stock'];

// à la fin de tous tes post, tu aura un tableau rempli dans ta session et tu pourra l'afficher :

print_r($_SESSION['stock']);

// affichage de type "array(indice => valeur)";
?>
Anasha [php-kiche-nomore]
anasha
le 05/10/2006 à 18:31
anasha
sinon si tu veu un select multiple :

<?
// pour le form
echo '<select multiple size="5" name="stock[]">';

// et puis pour le traitment
foreach ($_POST['stock'] as $stock) {
$_SESSION['stock'][] = $stock;
}

print_r($_SESSION['stock']);
?>
Anasha [php-kiche-nomore]
Keika
le 11/10/2006 à 07:15
Keika
Salut a tous,

merci pour vos reponses. Je suis un peu lent ces temps si parceque je viens juste d'emmenager a Sydney et que je dois emprunter le PC (en correen) de mes co-loc.
Mais passons,

merci anasha pour tes aides. Alors voila ce que j'ai fais sur la base de tes infos:

<?php

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

foreach($_POST['stock'] as $stock){

$produits[] = $stock ;}

$somme_produits = array_sum($produits) ;

print_r($somme_produits) ;

$prix= $_POST['prix'] ;

$pourcentage= (($prix * 20) / 100) ;

$resultat= ($prix - $pourcentage + $somme_produits) ;

echo'' ;

echo'<form action="./scripts/traitement.php" method="post">' ;

echo'<table summary="Pour encaisser">' ;

echo'<tr><td><input type="text" name="resultat" size="8" value="'.$resultat.'" /></td>' ;

echo'<td><input type="submit" name="caisse" value="Encaisser" /></td></tr>' ;

echo'</table></form>' ;
?>


il se trouve que je recois ces erreurs:

Warning: Invalid argument supplied for foreach() in J:AppsPortableFVPAserverwwwChris_Coiffurepagescaisse.php on line 120

Notice: Undefined variable: produits in J:AppsPortableFVPAserverwwwChris_Coiffurepagescaisse.php on line 124

Warning: array_sum() [function.array-sum]: The argument should be an array in J:AppsPortableFVPAserverwwwChris_Coiffurepagescaisse.php on line 124


Apparament $_POST['stock'] n'est pas compris comme un tableau et que donc ca pose probleme pour tout le reste...

une idee ? peut-etre qu'il vous faut mon formulaire alors le voici:

Ici

merci d'avance

K.
Le PHP --> C'est dur !
Keika
le 23/10/2006 à 16:32
Keika
Je remets tout ca au gout du jour.

j'ai toujours un soucis avec ce tableau pourri. je ne comprends pas pourquoi il ne m'enregistre pas tous les produits que je selectionne
Le PHP --> C'est dur !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours