[ mrax @ 20.02.2005. 17:11 ] @
kako mogu chekboksovima u formsu dodjeliti vrednost tako da ih pošaljem u košaricu.
To je primjer webshopa. Je traljav, ali se učim.

shop.htm
<form method="POST" action="sanduk.php">
<p>Hlače<input type="checkbox" name="C1" value="on"></p>
<p>Majica<input type="checkbox" name="C2" value="on"></p>
<p>Čarape<input type="checkbox" name="C3" value="on"></p>
<p>Gaće<input type="checkbox" name="C4" value="on"></p>
<p>Cipele<input type="checkbox" name="C5" value="on"></p>
<p>
<input type="submit" value="Naruči" name="kupi">&nbsp;&nbsp;&nbsp;

<input type="reset" value="Reset" name="B2"></p>
</form>

a košarici sam dodjelio ime "sanduk.php", kako da u sanduk.php pošaljem recimo chekirane "gaće" i njihovu cjenu?

sanduk.php
<?php
$n1 = $http_post_vars['c1'];
$n2 = $http_post_vars['c2'];
$n3 = $http_post_vars['c3'];
$n4 = $http_post_vars['c4'];
$n5 = $http_post_vars['c5'];
echo ($n1) ;
echo ($n2) ;
echo ($n3) ;
echo ($n4) ;
echo ($n5) ;

?>
Postoji li bolji način?
proizvode mislim dodavati offline. pa napraviti upload stranice.
Ponavljam da je ovo samo primjer da nebi bilo smijurije

[ noviKorisnik @ 20.02.2005. 19:11 ] @
Ne verujem da si testirao ovaj kod :-)
[ mrax @ 20.02.2005. 19:23 ] @
Pa naravno da jesam i jasno je da ne može da radi.
Mene zanima kako dodjeliti vrednosti u formsu
[ noviKorisnik @ 20.02.2005. 19:51 ] @
Možeš da dodeliš vrednost čekboksu i to upravo na način koji si naveo. Jedini problem je što formular prosleđuje samo vrednosti čekiranih čekbokseva. Odnosno, ako ovo znaš, onda ni ne bi trebalo da bude neki problem.

Znači, recimo

if (isset ($_POST ['C4']))
{
echo 'odabrali ste gaće';
...
[ mrax @ 20.02.2005. 22:04 ] @
ja sam zapravo htio u formsu postaviti cjenu i da je kasnije u php-u mogu zbrojit
[ Goran Rakić @ 26.02.2005. 14:46 ] @
I onda dodjem ja i izmenim HTML formu (snimim je na HDD, izmenim HTML i otvorim) tako da tebi posaljem zahtev u kome su sve cene nula? Sta ti onda radis? Ne mozes cene tako zadavati. Snimi cene negde drugde na serveru. Recimo najlakse napravi jedan php array:

sanduk.php
Code:

<?php

// niz sa cenama
// prvo polje je ime checkbox-a u formi
// a drugo polje cena
$cene = array(
  'p_hlace'=>30,
  'p_carape'=>21,
  ...
);

// Sumiramo cene u $tot, pravimo listu u $lista
// separator je zarez, posto ne zelimo da imamo jedan
// viska ni na pocetku ni na kraju
$tot = 0; $lista = ''; $sep ='';
foreach($_POST as $k=>$v) {

   // ako se radi o nekom proizvodu
   if(array_key_exists($k,$cene)) {
       $tot += $cene[$k]; 
       $lista.=$sep.'Hlače'; 
       $sep=', ';
   }

}

echo('
<html>
<!-- sada ubacis sve one meta stvari i slicno -->
....
   <p>Odabrali ste proizvode: '.$lista.'<br/>Ukupno zaduženje: '.$tot.'kn</p>
...
</html>
');
?>


Sada HTML preuredi ovako:

index.html
Code:

...
<form action="sanduk.php" method="post">
  <p>Hlače<input type="checkbox" name="p_hlace" ></p>
...


Nisam proveravao ali bi trebalo da radi.



[Ovu poruku je menjao Goran Rakić dana 27.02.2005. u 12:50 GMT+1]
[ eromario @ 27.02.2005. 10:06 ] @
Evo samo jedna mala korekcija:

shop.htm:

<form method="POST" action="sanduk.php">
<p>Hlače<input type="checkbox" name="c[]" value="on"></p>
<p>Majica<input type="checkbox" name="c[]" value="on"></p>
<p>Čarape<input type="checkbox" name="c[]" value="on"></p>
<p>Gaće<input type="checkbox" name="c[]" value="on"></p>
<p>Cipele<input type="checkbox" name="c[]" value="on"></p>
<p>
<input type="submit" value="Naruči" name="kupi">&nbsp;&nbsp;&nbsp;

<input type="reset" value="Reset" name="B2"></p>
</form>

sanduk.php:

<?php


echo ($c[0]) ;
echo ($c[1]) ;
echo ($c[2]) ;
echo ($c[3]) ;
echo ($c[4]) ;

?>
[ Goran Rakić @ 27.02.2005. 11:46 ] @
Da, ali onda pricelist mora biti po indeksima 0, 1,... U mom primeru pricelist je sa imenom pa ga je lakse odrzavati jer je cena nesto sto je podlozno promenama.