Передать таблицу javascript в php.
Здравствуйте. Уже не один день бьюсь над проблемой, перелопатил кучу информации хотел сам додуматься но не могу, уже мозг кипит.
Подскажите или направьте, как мне этот код передать в PHP. Мне нужно его в скрипт PHP принять. Спасибо всем кто неравнодушен. <script> $(document).ready(function() { var s = ""; s += "<tr class='TRpanierHD'>"; s += "<td>Nom</td>"; s += "<td>Matière</td>"; s += "<td>Épaisseur</td>"; s += "<td>Dimensions</td>"; s += "<td>Prix TTC</td>"; s += "<td>[X]</td>"; s += "</tr>"; var L = fnNRpanierOBJ(); var i,j,LD; var sum; sum = 0; var aDIM; for (i = 0; i < L; i++) if (fnLS("panier.pc." + i + ".name") != 'unknown') { s += "<tr class='TRpanierItem' onmouseout='fnPanierHideImage(this," + i + ")'>"; s += "<td id='PSI" + i + "'>"; s += "<span class='PR panierPCimage'></span>"; s += "<span class='SPpanierName' name='nom'>"; s += fnLS("panier.pc." + i + ".namestr"); s += (fnLS("panier.pc." + i + ".chr") == "unknown") ? "" : " (" + fnLS("panier.pc." + i + ".chr") + ")"; s += "</span>"; s += "<br />"; s += "(catégorie: " + fnLS("panier.pc." + i + ".categorystr") + ")"; s += "</td>"; s += "<td class='TAC'>" + aMAT[parseInt(fnLS("panier.pc." + i + ".matIX"))] + "</td>"; s += "<td class='TAR'>" + fnLS("panier.pc." + i + ".epMM") + " mm</td>"; s += "<td>"; LD = fnLS("panier.pc." + i + ".dim"); aDIM = LD.split('*'); LD = aDIM.length; for (j = 0; j < LD; j++) { s += (j == 0) ? "" : "<br />"; s += String.fromCharCode(97 + j); s += ": " + aDIM[j] + " mm"; } s += "</td>"; sum += fnPCitemPrice(fnLS("panier.pc." + i + ".price")); s += "<td class='TAR'>" + "<span class='SPpanierPrice'>" + fnLS("panier.pc." + i + ".price") + "</span> €</td>"; s += "<td><img class='PP' src='_include/img/close.png' onclick='fnPanierPCdelete(this," + i + ")'/></td>"; s += "</tr>"; } sum = parseFloat(sum); sum = sum.toFixed(2); sum = sum.toString(); sum = sum.replace(/\./,","); s += "<tr class='TRpanierSum'>"; s += "<td><input type='submit' name='submit' value=''></td>"; s += "<td colspan='6' class='TAR'><span class='SPpanierPrice'>"+sum+"</span> €</td>"; s += "</tr>"; $(s).appendTo($('table#TBpanier')); }); </script> <div class="span"> <form class="FL span9" action="./test.php" method="get"> <table id='TBpanier' class='FL span9'></table> </form> </div> |
Цитата:
Цитата:
Объясни подробно, что надо то |
Эта таблица корзины магазина. Я вот тоже уже склонялся к тому чтобы переделать на PHP но при подробном анализе выяснил что по времени будет очень долго. Если есть желание помочь могу дать ссылку.
При нажатие добавить в корзину в этой таблице отображаются детали заказа (металлических изделий) мне нужно эти детали дальше обработать, (подключить платежный шлюз, вывести в деталях заказа(Invoice) и т.д.) и вот тут стопор. Здесь идет подсчет общей суммы. Плюс заказанный товар храниться в LocalStorage. Просто кода javascript много если переделывать то все придется. Если в терминологии ошибся извиняюсь. |
почитай
отправка данных формами отправка данных с помощью аякс тебе ведь только значения нужны, вот их и надо отправлять. Все остальное мусор. :) |
Так это же таблица или значения не имеет? Плюс курил долго аякс, так тоже и не вышло. Пустые значения приходят или может проблема глубже?
|
Цитата:
Ты если хочешь на клиенте генерить, то хотя бы подключи простенький js-шаблонизатор. А что касается передачи в PHP - дык лучше передать чисто данные, а не таблицу ввиде html, не? Но для этого у тебя должно быть нормальное разделение данных и представления (хотяб шаблонизатор), а то ты все в кучу свалил. |
Ребят не нападайте) Сам за одним мастером доделываю честно. Поэтому может где что то упустил. И теперь задача стоит использовать базы данных.
|
Цитата:
|
Да уж, хотел время с экономить а получилось как всегда. Так что уважаемые гуру программирования оставить всю эту затею да переписать все, очень плох код?
|
Цитата:
// ================================================ // slider and price calculatorLettres and Chiffres // ================================================ function fnInitSliders() { var Aval = $('#sliderA').slider('value'); $('#INPvalA').val(Aval); } // ================================================ function fnShowPrice() { if ($('#PCprice').css('display') == 'block') { window.clearTimeout(TOprice); TOprice = window.setTimeout(function() { var Aval = $('#sliderA').slider('value'); var matiereIX = OBJcurrentMatiere.attr('data-ix'); var myEP = $('div#PCcolumn1 div.PCep div a.current label').html(); var priceHT = Aval * Aval * myEP * aCOEFd[matiereIX] * aCOEFz[matiereIX]; priceHT = (priceHT < priceMIN) ? priceMIN : priceHT; // minimum price document.forms['FRMprice'].elements['INPpriceHT'].value = fnFormatPrice(priceHT); document.forms['FRMprice'].elements['INPpriceTTC'].value = fnFormatPrice((priceHT + valFP) * valVATrate); }, MSprice); // END setTimeout } } $(document).ready(function() { // ================================================= $('#sliderA').slider({ animate: true, orientation: 'horizontal', range: 'max', max: 2000, // fixed : not changed by JS min: 20, // fixed : not changed by JS value: 20, slide: function(event,ui) { $('#INPvalA').val(ui.value); fnShowPrice(); } }); fnInitSliders(); // ================================================= // $("div.PCmatiere a").on("mousedown", function() { var TFresizeColumns = false; // corrected : if ($(this) !== OBJcurrentMatiere) { // do not click current if (OBJcurrentMatiere) { // reset previous selected item OBJcurrentMatiere.removeClass("current"); OBJcurrentMatiere.addClass("opt"); OBJcurrentEPset.removeClass("DB"); OBJcurrentEPset.addClass("DN"); $("input", OBJcurrentEPset).prop("disabled", true); $("input", OBJcurrentEPset).prop("checked", false); // reset EP-radio-buttons : user should select EP again if (OBJepRD) { // reset previous selected item OBJepRD.removeClass("current"); OBJepRD.addClass("opt"); window.OBJepRD = null; } } else { // first time click any Matiere $("#PCcolumn1").height("auto"); TFresizeColumns = true; } OBJcurrentMatiere = $(this); OBJcurrentMatiere.removeClass("opt"); OBJcurrentMatiere.addClass("current"); OBJcurrentEPset = $("#RDepList"+$(this).attr("data-ix")); // prop() does NOT function here !? OBJcurrentEPset.removeClass("DN"); OBJcurrentEPset.addClass("DB"); $("input",OBJcurrentEPset).prop("disabled",false); if (TFresizeColumns) { fnTFresizeColumns(); } $("#PCprice").css("display","none"); // visiter must select an ep first } } ); $("div.PCmatiere a").on("mouseup", function() { window.setTimeout("fnBlurCurrentMatiere()",50); // some delay needed !? } ); $("div.PCep input").prop("disabled",true); // only the EP-radio-buttons of a selected material will be included in the POST //noinspection JSJQueryEfficiency,JSJQueryEfficiency $("div.PCep a").on("mousedown", function() { if ($(this) !== OBJepRD) { // do not click current if (OBJepRD) { // reset previous selected item OBJepRD.removeClass("current"); OBJepRD.addClass("opt"); } OBJepRD = $(this); OBJepRD.removeClass("opt"); OBJepRD.addClass("current"); $("#PCprice").css("display","block"); fnShowPrice(); // custom function for each product; } } ); $("div.PCep a").on("mouseup", function() { window.setTimeout("fnBlurEPradio()",50); // some delay needed !? } ); fnTFresizeColumns(); }); // ### END document.ready // ================================================ // |
И вот еще, спойлер не нашел.
var TOprice; // TimeOut ID var MSprice = 300; // delay in MilliSeconds var OBJcurrentMatiere = null; var OBJcurrentEPset = null; var OBJepRD; OBJepRD = null; var priceMIN = 5; var valFP = 15; var valVATrate = 1.196; var aCOEFd = new Array(5); aCOEFd[0] = 0.0000078; // Acier brut aCOEFd[1] = 0.0000078; // Acier décapé aCOEFd[2] = 0.0000028; // Aluminium aCOEFd[3] = 0.0000078; // Inox brossé aCOEFd[4] = 0.0000078; // Inox brut var aCOEFz = new Array(5); aCOEFz[0] = 1.8; // Acier brut aCOEFz[1] = 2; // Acier décapé aCOEFz[2] = 12; // Aluminium aCOEFz[3] = 12; // Inox brossé aCOEFz[4] = 10; // Inox brut // ================================================ function fnAddToCart(category,categorystr,name,namestr,imagewh,nrdim,price,chr) { var i; var NRix = fnNRpanierOBJ(); // new item in panier has IndeX NR localStorage["panier.pc."+NRix+".chr"] = chr; localStorage["panier.pc."+NRix+".imagewh"] = imagewh; localStorage["panier.pc."+NRix+".categorystr"] = categorystr; localStorage["panier.pc."+NRix+".namestr"] = namestr; localStorage["panier.pc."+NRix+".category"] = category; localStorage["panier.pc."+NRix+".name"] = name; var matIX = OBJcurrentMatiere.attr('data-ix'); localStorage["panier.pc."+NRix+".matIX"] = matIX.toString(); var RDix = null; var MATname = OBJcurrentMatiere.attr('data-name'); var L = document.getElementsByName('RDep_'+MATname).length; for (i=0;i < L;i++) { if ($('#RDep_'+MATname+i).get(0).checked) { RDix = i; break; } } localStorage["panier.pc."+NRix+".epMM"] = $('#RDep_'+MATname+RDix).get(0).value.toString(); var dim = ""; for (i=0;i < nrdim;i++) { dim += (dim == "") ? "" : "*"; dim += $('#INPval'+String.fromCharCode(65+i)).val(); } localStorage["panier.pc."+NRix+".dim"] = dim; localStorage["panier.pc."+NRix+".price"] = price; // keep the record : current # items in panier (increase this # but some can be deleted) NRix++; localStorage["panier.pc.nr"] = NRix.toString(); $('#SPmonPanierNR').html(fnNRpanierOBJpresent()); } // ================================================ function fnBlurCurrentMatiere() { $('input',OBJcurrentMatiere).blur(); } // ================================================ function fnBlurEPradio() { $('input',OBJepRD).blur(); } // ================================================ function fnTFresizeColumns() { var maxH = 0; var C1 = $("#PCcolumn1").height(); var C2 = $("#PCcolumn2").height(); var C3 = $("#PCcolumn3").height(); maxH = (C1 > maxH) ? C1 : maxH; maxH = (C2 > maxH) ? C2 : maxH; maxH = (C3 > maxH) ? C3 : maxH; $("#PCcolumn1").height(maxH); $("#PCcolumn2").height(maxH); $("#PCcolumn3").height(maxH); } // ================================================ function fnFormatPrice(n) { n = "" + Math.round(100 * n); var Ls = n.length; n = n.substr(0,Ls-2) + ',' + n.substr(Ls-2,2); return n; } // ================================================ function fnSymbolChange(TH) { $('#chr').text($(TH).val()); } |
Нашел решение своей проблемы. Как оказалось все гораздо проще чем я думал, действительно нужно было из таблицы взять данные и передать в input hidden, а далее посредством формы отправил скрипту php).
Всем спасибо! |
Часовой пояс GMT +3, время: 16:31. |