Koszyk i zamówienia.

PHP to skryptowy język wykonywany po stronie serwera. Forum przeznaczone na pytania dot. programowania obiektowego, wzorców projektowych itp.
Awatar użytkownika
awek
Posty: 1
Rejestracja: 02 cze 2015, 17:32

Koszyk i zamówienia.

Post autor: awek » 02 cze 2015, 17:35

Witam. Mam problem z "odczytaniem danych do update bazy MYSQL"

Nie wiem gdzie te dane się znajdują!..

Oto skrypt

Kod: Zaznacz cały

// funkcje do operacji na koszyku
// ======================================================================================

// dodanie produktu do koszyka
function AddToBasket(nId, cCode, cName, nPrice, nQuant)
{
  var basket = new TShopBasket();

  basket.Read();
  basket.Add(nId, cCode, cName, nQuant, nPrice, 0.0);
  UpdateBasketDisplay(basket.Count(), basket.BrtAmount());
  basket.Write();
}

// wartosc koszyka
function GetBasketAmount()
{
  var basket = new TShopBasket();
  var amount = 0;

  basket.Read();
  if (basket.Count() > 0)
  {
    for (i = 0; i < basket.Count(); i++)
      amount += basket.GetBrtAmount(i)
  }

  return (amount);
}

// ilosc pozycji w koszyku
function GetBasketCount()
{
  var basket = new TShopBasket();
  basket.Read();
  return (basket.Count());
}

// aktualizacja danych o koszyku
function UpdateBasketDisplay(quant, amount)
{
  var quantTxt = document.getElementById("basketQuant");
  var amountTxt = document.getElementById("basketAmount");
  
  quantTxt.innerHTML = quant;
  amountTxt.innerHTML =  amount.toFixed(2);
}

// pokazanie stany koszyka
function ShowBasketState()
{
  var basket = new TShopBasket();
  basket.Read();

  var quantTxt = document.getElementById("basketQuant");
  var amountTxt = document.getElementById("basketAmount");
  
  quantTxt.innerHTML = GetBasketCount().toFixed(2);
  amountTxt.innerHTML =  GetBasketAmount().toFixed(2);
}

// wyswietlanie i obsluga koszyka koszyka
// ======================================================================================

// 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);
}
  
// pusty koszyk
function emptyBasket(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("Koszyk jest pusty");
  if (isEditable)
    cell.setAttribute("colspan", "6");
  else
    cell.setAttribute("colspan", "5");
  cell.appendChild(textNode);
}

// usuniecie produktu z koszyka i wiersza tabeli
function deleteItem(i)
{
  var basket = new TShopBasket();

  basket.Read();
  basket.RemoveIndex(i);
  basket.Write();
  
  UpdateBasketDisplay(basket.Count(), basket.BrtAmount());
  clearTable();
  ShowBasket(true);
}

// aktualizacja ilosci
function updateItem(idInput, i)
{
  var basket = new TShopBasket();
  basket.Read();

  var inputQuant = document.getElementById(idInput);
  var quant = inputQuant.value;
  
  if (isNaN(quant))
  {
    alert("Nieprawidłowa warto¶ć pola ilo¶ć !");
    inputQuant.value = basket.GetQuant(i);
    return;
  }

  basket.UpdateQuant(i, quant);
  basket.Write();
  
  UpdateBasketDisplay(basket.Count(), basket.BrtAmount());
  clearTable();
  ShowBasket(true);
}

// czyszczenie tabeli
function clearTable()
{
  var table = document.getElementById("basketTable");
  while (table.rows.length > 1)
    table.deleteRow(table.rows.length - 1);
}

// formularz koszyka
// ======================================================================================

// funkcja czyszczaca zawartosc koszyka
function ClearBasket()
{
  var basket = new TShopBasket();
  basket.Read();
  basket.Clear();
  basket.Write();

  window.location.reload();
}

// usuniecie elementu z koszyka i refresh strony
function BasketRemoveItem(nId)
{
  var basket = new TShopBasket();
  var i;
  var nAmount = 0;

  basket.Read();
  basket.Remove(nId);
  basket.Write();

  location.reload();
}

Kod: Zaznacz cały

<div>
  <h1>Koszyk</h1>
</div>

<div id="basket">
  <table id="basketTable">
    <tr>
    <th width="5%">Lp</th>
    <th width="40%">Nazwa</th>
    <th width="15%">Ilość</th>
    <th width="15%">Cena</th>
    <th width="15%">Wartość</th>
    <th width="10%">&nbsp;</th>
    </tr>
  </table>

  <a href="#" onclick="ClearBasket();" >wyczyść</a>
</div>

		<script type="text/javascript">
  ShowBasketState();
  ShowBasket(true);
</script>

Chciałbym zrobic "realizacje zamówienia" ->poprzez przycisk kończymy zamówienie i dane które są teraz w ciasteczkach(JS) są zapisywane w MYSQL.
Tylko nie wiem skąd te dane do zapytania wziaść.. Nie ogarniam teg.

Pozdrawiam

ODPOWIEDZ