json javascript to php
Я хочу передать массив в файл обработчик который в свою очередь будет отправлять почту
в php я получаю этот массив $products=$_SESSION['cart']->get_products(); function ajax_post(){ // Create our XMLHttpRequest object var hr = new XMLHttpRequest(); // Create some variables we need to send to our PHP file var url = "/server/mail.php"; var fn = <?php echo json_encode($products);?>; var ln = document.getElementById("mymail").value ; var vars = "firstarray="+fn+"&email="+ln; hr.open("POST", url, true); // Set content type header information for sending url encoded variables in the request hr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); // Access the onreadystatechange event for the XMLHttpRequest object hr.onreadystatechange = function() { if(hr.readyState == 4 && hr.status == 200) { var return_data = hr.responseText; /* document.getElementById("status").innerHTML = return_data; */ } } // Send the data to PHP now... and wait for response to update the status div hr.send(fn); // Actually execute the request /* document.getElementById("status").innerHTML = "processing..."; */ } почему я в обработчике не вижу json хотя передаю его, массив есть принимаю так print_r($_POST); |
А зачем уже имея на сервере список продуктов, загонять их на клиента - <?php echo json_encode($products);?>, чтоб получив его, использовать опять таки сервером? Что нельзя просто отослать подтверждение или еще что-то, и получив $_SESSION['cart'], использовать для почтового сообщения?
|
дело в том что сессия есть но мне по событию надо с ней произвести действия
|
array(2) { ["firstarray"]=> string(15) "[object Object]" ["email"]=> string(19) "imediasun@gmail.com" } тут я получаю вот такой массив но он не реагирует на $json = json_decode($_POST["firstarray"]); |
Цитата:
|
Вся суть в том что заказчик захотел по событию закрытия окна браузера слать на мыло сохранение корзины
|
Цитата:
При закрытии браузера можно отослать серверу параметр hr.send(closed=1); и знать на сервере, что нужно извлечь товары из корзины и отправить их почтой. Туда сюда гоняют товары в том случае, если опасаются, что сессия умрет и с ней корзина. Но в этом случае нужно не опасаться, а иметь корзину не сессионную. Корзину на сервер нужно слать только в том случае, если она полностью находится на клиенте, например в локальном хранилище. |
Часовой пояс GMT +3, время: 15:21. |