Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS]do[PHP] JSON - Przesyłanie danych
XMajkel
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.04.2014

Ostrzeżenie: (0%)
-----


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

Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:40