Mam zrobiony taki kod koszyka z zakupami:
Kod:
Kod: Zaznacz cały
<?php
session_start();
if (!isset($_SESSION['koszyk'])) {
$_SESSION['koszyk'] = array();
}
/* inicjuje zmienna */
if(empty($_SESSION['powierzchnia'])){
$_SESSION['powierzchnia'] = 0;
}
if(isset($_GET['zapiszPowierzchnie'])){
/* przetwarza dane formularza powierzchni */
$_SESSION['powierzchnia'] = floatVal($_POST['powierzchnia']);
}
if (isset($_GET['reset'])) //chcemy wyczy¶cić koszyk
{
unset($_SESSION['koszyk']);
header('location: '. $_SERVER['PHP_SELF']. '?'. SID);
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Firma budowlana </title>
</head>
<body>
<h1>Twoj koszyk z zakupami</h1>
<?php
// definicja tablic z towarami oraz cenami
$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;
$q = mysql_connect('localhost','root','555') or
die('Padl serwer');
$q = mysql_select_db('stronaphp') or die('Padla baza');
$wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug")
or die('Błąd zapytania');
$towary = array();
$ceny = array();
while ($row = mysql_fetch_array($wynik))
{
$towary[$row['ID']]=$row['Nazwa_uslugi'];
$ceny[$row['ID']]=$row['Cena_za_metr'];
}
?>
<table border="1">
</thead>
<tr>
<th>Nazwa usługi</th>
<th>Cena za metr</th>
</tr>
</thead>
<tbody>
<?php
$suma = 0;
$powierzchnia = 1;
if($_SESSION['powierzchnia']>0){
$powierzchnia = $_SESSION['powierzchnia'];
}
for ($i=0;$i < count($_SESSION['koszyk']); $i++)
{
echo '<tr>';
echo '<td>'.$towary[$_SESSION['koszyk'][$i]].'</td>';
echo '<td align="right">';
echo $powierzchnia.' m<sup>2</sup> x '.number_format ($ceny[$_SESSION['koszyk'][$i]],2);
echo ' zlotych</td>';
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?zapiszPowierzchnie=1">
<td><input type="text" name="powierzchnia[<?= $i ?>]" id="powierzchnia" value="<?=htmlspecialchars($_SESSION['powierzchnia'][$i]); ?>"></td>
<td><input type="submit" value="Zapisz"></td>
</form>
<?php
$suma = $suma + ($ceny[$_SESSION['koszyk'][$i]]* $powierzchnia );
}
print_r($_POST);
?>
</tbody>
<tfoot>
<tr>
<th align="right">Naleznosc: </th><br>
<th align="right"><?php echo number_format($suma,2); ?> zlotych.</th>
</tr>
</tfoot>
</table>
<p><a href="towary.php">Kupuj dalej</a> lub też: <a href="<?php echo $_SERVER['PHP_SELF']; ?>?reset=1">Wyczysc swoj koszyk</a></p>
</body>
</html>
</code>
A mój problem polega na tym, że nie działa mi zapisywanie ilości produktów. Mam taki koszyk: http://zapodaj.net/2a9d03c72ce00.jpg.html i gdy wpisuje jakieś wartości to w tabeli nic się nie dzieje tylko pojawia mi się tablica $_POST. Po wpisaniu i zapisaniu w zależności które to pole pojawia się:
Array ( [powierzchnia] => Array ( [4] => 13 ) )
Array ( [powierzchnia] => Array ( [1] => 5 ) )
Array ( [powierzchnia] => Array ( [4] => 8 ) )
Array ( [powierzchnia] => Array ( [1] => 50 ) )
Jedynie gdy usunę z linii:
Kod: <code><td><input type="text" name="powierzchnia[<?= $i ?>]" id="powierzchnia" value="<?=htmlspecialchars($_SESSION['powierzchnia'][$i]); ?>"></td></code>
tą część kodu: Kod:<code>[<?= $i ?>]</code>
to działa ale niestety tylko w ten sposób że obojetnie gdzie wpisze liczbę to zapisuje mi dla wszystkich wierszy tą samą wartość (ilość artykułów). w tym przypadku $_POST pokazuje: Array ( [powierzchnia] => 3 )
Mógłby mi ktoś coś podpowiedzieć? Jestem dopiero początkujący ;)