Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS]do[PHP] JSON - Przesyłanie danych
Forum PHP.pl > Forum > PHP
XMajkel
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

  1. / wyswietlenie tabeli z zawartoscia koszyka
  2. function ShowBasket(isEditable)
  3. {
  4. var table = document.getElementById("basketTable");
  5. var basket = new TShopBasket();
  6. basket.Read();
  7.  
  8.  
  9.  
  10. clearTable();
  11.  
  12. if (basket.Count() < 1)
  13. {
  14. emptyBasket(isEditable);
  15. return -1;
  16. }
  17.  
  18. for (var i = 0; i < basket.Count(); i++)
  19. addRow(basket, i, isEditable);
  20. addTotal(basket, isEditable);
  21. }
  22.  
  23. // dodanie wiersza z pozycja koszyka
  24. function addRow(basket, i, isEditable)
  25. {
  26. var table = document.getElementById("basketTable");
  27. var lastRow = table.rows.length;
  28.  
  29. var row = table.insertRow(lastRow);
  30. row.id = "row_" + i;
  31.  
  32. // lp
  33. var cell = row.insertCell(0);
  34. var textNode = document.createTextNode(lastRow);
  35. cell.appendChild(textNode);
  36.  
  37. // nazwa
  38. cell = row.insertCell(1);
  39. textNode = document.createTextNode(basket.GetName(i));
  40. cell.appendChild(textNode);
  41.  
  42. // ilosc
  43. if (isEditable)
  44. {
  45. cell = row.insertCell(2);
  46. var el = document.createElement("input");
  47. el.type = "text";
  48. el.name = "quant" + i;
  49. el.id = "quant_" + i;
  50. el.size = "5";
  51. el.value = basket.GetQuant(i);
  52. el.setAttribute("onchange", "javascript:updateItem('quant_" + i + "', " + i + ");");
  53. cell.appendChild(el);
  54. }
  55. else
  56. {
  57. cell = row.insertCell(2);
  58. textNode = document.createTextNode(basket.GetQuant(i));
  59. cell.appendChild(textNode);
  60. }
  61.  
  62. // cena
  63. cell = row.insertCell(3);
  64. cell.setAttribute("class", "right");
  65. textNode = document.createTextNode(basket.GetNetPrice(i).toFixed(2));
  66. cell.appendChild(textNode);
  67.  
  68. // wartosc
  69. cell = row.insertCell(4);
  70. cell.setAttribute("class", "right");
  71. textNode = document.createTextNode(basket.GetNetAmount(i).toFixed(2));
  72. cell.appendChild(textNode);
  73.  
  74. // link usun
  75. if (isEditable)
  76. {
  77. cell = row.insertCell(5);
  78. var el = document.createElement("a");
  79. el.setAttribute("href", "javascript:deleteItem(" + i + ");");
  80. el.innerHTML = "usuń";
  81. cell.appendChild(el);
  82. }
  83. }
  84.  
  85. // wiersz podsumowania
  86. function addTotal(basket, isEditable)
  87. {
  88. var table = document.getElementById("basketTable");
  89. var lastRow = table.rows.length;
  90. var row = table.insertRow(lastRow);
  91.  
  92. var cell = row.insertCell(0);
  93. var textNode = document.createTextNode(" ");
  94. if (isEditable)
  95. cell.setAttribute("colspan", "4");
  96. else
  97. cell.setAttribute("colspan", "3");
  98. cell.appendChild(textNode);
  99.  
  100. // podsumowanie
  101. cell = row.insertCell(1);
  102. cell.setAttribute("class", "right");
  103. var textNode = document.createTextNode(basket.GetNetTotal().toFixed(2));
  104. cell.appendChild(textNode);
  105. }



Fragment kodu JSON w tym samym pliku
  1. // ================================================================================
  2. ======
  3.  
  4. // JSON
  5.  
  6. JSON.stringify(koszyk)
  7.  
  8. var koszyk = [];
  9.  
  10. // dodanie wiersza z pozycja koszyka
  11. function addRow(basket, i, isEditable)
  12. {
  13. var table = document.getElementById("basketTable");
  14. var lastRow = table.rows.length;
  15.  
  16. var row = table.insertRow(lastRow);
  17. row.id = "row_" + i;
  18.  
  19. // lp
  20. var cell = row.insertCell(0);
  21. var textNode = document.createTextNode(lastRow);
  22. cell.appendChild(textNode);
  23.  
  24. // nazwa
  25. cell = row.insertCell(1);
  26. textNode = document.createTextNode(basket.GetName(i));
  27. cell.appendChild(textNode);
  28. ....
  29. ....
  30. ....
  31. ....
  32.  
  33. // link usun
  34. if (isEditable)
  35. {
  36. cell = row.insertCell(5);
  37. var el = document.createElement("a");
  38. el.setAttribute("href", "java script:deleteItem(" + i + ");");
  39. el.innerHTML = "usuń";
  40. cell.appendChild(el);
  41. }
  42. }
  43.  
  44. //DODAWANIE DO TABLICY JS:
  45. koszyk.push({name: basket.GetName(i), quant: basket.GetQuant(i)});
  46.  
  47. document.getElementById('zamowienie').value = JSON.stringify(koszyk);
  48.  
  49. // =============================================================


Fragment html-a z tabelka koszyka
  1. <form method="POST" action="maj.php">
  2. <div id="basket">
  3. <table id="basketTable">
  4. <tr>
  5. <th width="5%">Lp</th>
  6. <th width="40%">Nazwa</th>
  7. <th width="15%">Ilość</th>
  8. <th width="15%">Wartość</th>
  9. <th width="10%">&nbsp;</th>
  10. </tr>
  11. </table>
  12.  
  13. <a href="#" onclick="ClearBasket();" >wyczyść</a>
  14. </div>
  15. Twój mail:<input type="text" name="mail">
  16. <input type="hidden" id="zamowienie" name="zamowienie"/>
  17. <input value="Zamawiam!" type="submit">
  18.  
  19. </form>


I wreszcie pliczek php...

  1. Twój mail i rachunek:
  2.  
  3. <?php
  4.  
  5. echo $_POST["mail"];
  6. json_decode($_POST["zamowienie"])
  7.  
  8. ?>


Wiecie może gdzie popełniam błąd?? Dzięki i pozdrawiam

nospor
Nie chce mi sie analizowac calego kodu, ale koncowka jest toalnie zla.... json_decode() cos zwraca, a ty nic z tym nie robisz, wiec trudno oczekiwac bys cos mial...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.