Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Стоимость сборки (https://javascript.ru/forum/misc/74180-stoimost-sborki.html)

_marisha 20.06.2018 07:36

Стоимость сборки
 
Доброго времени суток!

Необходимо:

Добавить возможность для покупателя рассчитать и оплатить стоимость сборки приобретаемой мебели.
Т.е. при оформлении заказа покупатель перед выбором доставки имеет возможность поставить галочку в пункте "Сборка мебели".
Стоимость сборки рассчитывается на основании суммарной стоимости выбранных покупателем позиций - это 5% от суммы заказа (без учета доставки) с округлением вверх до 10 руб (минимальная цена сборки 300руб)

В корзине выведен чекбокс (файл "test.php")
<div data-property-id-row="22" class="clearfix">
	<label>
				<div class="bx_logotype">
			<span style="background-image:url(/images/logo-default-d.gif);"></span>
		</div>
	</label>
	<div class="bx_block r1x3 pt8">
		<input type="checkbox" id="sbor" onchange="fun1()">
		<div class="bx_description">
			<?=GetMessage("COST_OF_ASSEMBLY_SUMM")?><span style="font-weight: bold;"> 300</span>
		</div>
	</div>
</div>

Происходит проверка чекбокса (выбран/не выбран)
<script type="text/javascript">
function fun1() {
var chbox;
chbox=document.getElementById('sbor');
    if (chbox.checked) {
        //alert('Выбран');
       var message;
       message = '1';
       alert(message);
    }
    else {
        //alert ('Не выбран');
        var message;
       message = '0';
       alert(message);
    }
}
</script>

Подскажите, пожалуйста, каким образом возможно записать значение (выбран/ не выбран, т.е. 1/0) в переменную php и далее данную переменную предавать в другой файл (summary.php)? Спасибо.

laimas 20.06.2018 08:17

Цитата:

Сообщение от _marisha
каким образом возможно записать значение (выбран/ не выбран, т.е. 1/0) в переменную php и далее данную переменную предавать в другой файл (summary.php)?

Отправляйте на сервер выбор пользователя, храните его (сессия/база). Непосредственно на клиенте, это либо куки, либо сессионное хранилище (не отправляя на сервер и сервер может не знать об этом).

_marisha 20.06.2018 08:49

laimas, спасибо что откликнулись.
Возможно ли показать как на данном примере будет выглядеть?
Или примеры на что отталкиваться? Спасибо.

laimas 20.06.2018 09:51

_marisha,
можно и примеры, скажите только как именно нужно? Ведь если речь идет о переменной хранящейся на сервере, то только передача ее на сервер, клиент тут не помощник. Собственно передать значение некоего поля формы с одной страницы в форму на другой странице можно и через саму форму.

_marisha 20.06.2018 10:18

laimas, как именно нужно, затрудняюсь ответить.

Пробую делать так (найден пример):
function fun1() {
var chbox;
chbox=document.getElementById('sbor');
    if (chbox.checked) {
       var sbor = '1';
      $(document).ready(function(){
          $.ajax({
          url: "summary.php",
          type : "POST",
          data : {sbor:sbor},
      }); 
    }
    else {
        //alert ('Не выбран');
        var message;
       message = '0';
       alert(message);
    }
}

В summary.php echo $_POST['sbor']; пусто
Возможно данный вариант не подходит для решения в данном случае...

laimas 20.06.2018 10:28

Ошибка в коде - строку 6 удалите (не закрыто тело условия, да и $(document).ready(function() тут совсем ни к чему).

_marisha 20.06.2018 10:42

laimas,
function fun1() {
var chbox;
chbox=document.getElementById('sbor');
    if (chbox.checked) {
       var sbor = '1';
          $.ajax({
          url: "summary.php",
          type : "POST",
          data : {sbor:sbor},
         });
    }
    else {
        var message;
       message = '0';
       alert(message);
    }
}

В summary.php echo $_POST['sbor']; пусто

_marisha 20.06.2018 11:10

Если сделать так:
function fun1() {
var chbox;
chbox=document.getElementById('sbor');
    if (chbox.checked) {
       var sbor = '1';
          $.ajax({
          url: "summary.php",
          type : "POST",
          data : {sbor:sbor},
          success: function (data) {
          alert (data);
          },
          error: function(){
          alert ("No PHP script: ");
          } 
         });
    }
    else {
        var message;
       message = '0';
       alert(message);
    }
}

То при отмеченном чекбоксе возвращает "No PHP script: "

laimas 20.06.2018 11:26

Запрос будет, а ошибку (ответ сервера: статус) нужно анализировать.

_marisha 20.06.2018 11:32

laimas,
$.ajax({
          url: "/sale.order.ajax/.default/summary.php",
          data : {sbor:sbor},
          type : "POST",
          success: function (data) {
          alert ("data");
          },
          error: function(){
          alert ("No PHP script: ");
          } 
         });

Извините, не верно был указан путь к файлу.
Сейчас срабатывает первое условие alert ("data");
Но если сделать alert (data);, то data пустое значение, т.е. в alert пусто...


Часовой пояс GMT +3, время: 13:49.