Mam skrypt JS który generuje koszyk produktów w postaci tabeli i mam problem żeby przesłać go do formularza PHP który wyśle mi już zamówienie na maila.
Próbuje to zrobić JSON decode ale nie wiem gdzie popełniłem błąd...
Fragment pliku JS który tworzy tabele
/ wyswietlenie tabeli z zawartoscia koszyka
function ShowBasket(isEditable)
{
var table = document.getElementById("basketTable");
var basket = new TShopBasket();
basket.Read();
clearTable();
if (basket.Count() < 1)
{
emptyBasket(isEditable);
return -1;
}
for (var i = 0; i < basket.Count(); i++)
addRow(basket, i, isEditable);
addTotal(basket, isEditable);
}
// dodanie wiersza z pozycja koszyka
function addRow(basket, i, isEditable)
{
var table = document.getElementById("basketTable");
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
row.id = "row_" + i;
// lp
var cell = row.insertCell(0);
var textNode = document.createTextNode(lastRow);
cell.appendChild(textNode);
// nazwa
cell = row.insertCell(1);
textNode = document.createTextNode(basket.GetName(i));
cell.appendChild(textNode);
// ilosc
if (isEditable)
{
cell = row.insertCell(2);
var el = document.createElement("input");
el.type = "text";
el.name = "quant" + i;
el.id = "quant_" + i;
el.size = "5";
el.value = basket.GetQuant(i);
el.setAttribute("onchange", "javascript:updateItem('quant_" + i + "', " + i + ");");
cell.appendChild(el);
}
else
{
cell = row.insertCell(2);
textNode = document.createTextNode(basket.GetQuant(i));
cell.appendChild(textNode);
}
// cena
cell = row.insertCell(3);
cell.setAttribute("class", "right");
textNode = document.createTextNode(basket.GetNetPrice(i).toFixed(2));
cell.appendChild(textNode);
// wartosc
cell = row.insertCell(4);
cell.setAttribute("class", "right");
textNode = document.createTextNode(basket.GetNetAmount(i).toFixed(2));
cell.appendChild(textNode);
// link usun
if (isEditable)
{
cell = row.insertCell(5);
var el = document.createElement("a");
el.setAttribute("href", "javascript:deleteItem(" + i + ");");
el.innerHTML = "usuń";
cell.appendChild(el);
}
}
// wiersz podsumowania
function addTotal(basket, isEditable)
{
var table = document.getElementById("basketTable");
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
var cell = row.insertCell(0);
var textNode = document.createTextNode(" ");
if (isEditable)
cell.setAttribute("colspan", "4");
else
cell.setAttribute("colspan", "3");
cell.appendChild(textNode);
// podsumowanie
cell = row.insertCell(1);
cell.setAttribute("class", "right");
var textNode = document.createTextNode(basket.GetNetTotal().toFixed(2));
cell.appendChild(textNode);
}
Fragment kodu JSON w tym samym pliku
// ================================================================================
======
// JSON
JSON.stringify(koszyk)
var koszyk = [];
// dodanie wiersza z pozycja koszyka
function addRow(basket, i, isEditable)
{
var table = document.getElementById("basketTable");
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
row.id = "row_" + i;
// lp
var cell = row.insertCell(0);
var textNode = document.createTextNode(lastRow);
cell.appendChild(textNode);
// nazwa
cell = row.insertCell(1);
textNode = document.createTextNode(basket.GetName(i));
cell.appendChild(textNode);
....
....
....
....
// link usun
if (isEditable)
{
cell = row.insertCell(5);
var el = document.createElement("a");
el.setAttribute("href", "java script:deleteItem(" + i + ");");
el.innerHTML = "usuń";
cell.appendChild(el);
}
}
//DODAWANIE DO TABLICY JS:
koszyk.push({name: basket.GetName(i), quant: basket.GetQuant(i)});
document.getElementById('zamowienie').value = JSON.stringify(koszyk);
// =============================================================
Fragment html-a z tabelka koszyka
<form method="POST" action="maj.php"> <th width="40%">Nazwa
</th> <th width="15%">Ilość
</th> <th width="15%">Wartość
</th> <th width="10%"> </th>
<a href="#" onclick="ClearBasket();" >wyczyść
</a> Twój mail:
<input type="text" name="mail"> <input type="hidden" id="zamowienie" name="zamowienie"/> <input value="Zamawiam!" type="submit">
I wreszcie pliczek php...
Twój mail i rachunek:
<?php
json_decode($_POST["zamowienie"])
?>
Wiecie może gdzie popełniam błąd?? Dzięki i pozdrawiam