Не отрабатывает ajax - PHP

256
15 июля 2017, 09:17

выдает пусто, в чем я ошибся? есть форма

<form id="order_form">      
     <table class="complect double">
         <tbody><tr class="">
               <td colspan="10" class="divs">
                   <p class="name">Список заказов</p>
                      <a href="javascript:void(0)" class="but left">Меню по дням</a>
                    <div class="right"> 
                        <button id="elem" class="but status green">Оплачен</button>
                        <a href="javascript:void(0)" class="but">Не оплачен</a>
                        <a href="javascript:void(0)" class="but del"><span></span>Удалить</a>
                    </div>
                   </td>
                  </tr>
               <tr>
                  <th><p>ТТК</p></th>
                  <th><p class="non-center">Наименование</p></th>
                  <th><p>d sadad</p><p class="text-col"><b></b></p></th>
                  <th><p>fsd fsdf</p><p class="text-col"><b></b></p></th>
                  <th><p>qwerty</p><p class="text-col"><b></b></p></th>  
                  <th><p><b>Итого</b></p><p class="text-col"><b></b></p></th>
                  <th><p></p></th>
               </tr>
               <tr class="name-tabl">
                   <td></td>
                   <td><p class="name-sal"><b>Комплексные обеды</b></p></td>
               </tr>
               <tr>
                  <td>
                      <p class="text-col2_und">1</p>
                  </td>
                  <td>
                      <p class="text-col2">Комплексный обед</p>
                      <p class="text-col3">водоросли вакаме, гриб шиитаке, зеленый лук, семена кунжута, соевый соус, тофу</p>
                 </td>
                 <td><p><b>0</b></p></td><td><p><b>2</b></p></td><td><p><b>0</b></p></td><td><p><b>2</b></p>
                </td>
               <td>
                   <input id="cfirst60" value="60" type="checkbox" name="order_id[]">
               </td>
           /tr>
   </tbody>

по нажатию на оплачено вызываю ajax:

<script>
 elem.onclick = function(){
 // Получение ID формы
 var formID = 'order_form';
 // Добавление решётки к имени ID
 var formNm = $('#' + formID);
 $.ajax({
 type: "POST",
 url: 'assets/zy.php',
data: formNm.serialize(),
 success: function (data) {
 // Вывод текста результата отправки
 $('#message').html(data);
 },
 error: function (jqXHR, text, error) {
 // Вывод текста ошибки отправки
 $('#message').html('Ошибка');
 }
 });
 return false;
 };
</script>

и вот сам файл

 <?php
 if (isset($_POST['order_id'])) {
 foreach ( $_POST['order_id'] as $k=>$m) {
 if (!empty($m)) { $mass[$k] = $m; }
 }
 print '<pre>';
 print_r ($mass);
 } else {
 print 'пусто';
 }
Answer 1

Во-первых, у вас неверный код в PHP-файле. Используйте вместо print и print_r следующий вывод:

echo '<pre>';
exit();

Во-вторых, там же вы пытаетесь отправить ajax-ответ в цикле, что недопустимо:

foreach ( $_POST['order_id'] as $k=>$m)

Если вам нужно выполнить в коде цикл, то сперва делаете его, а уже в конце всех операций отправляете ответ. Если требуется передать в ответе массив, то кодируйте его в JSON в PHP-части и декодируйте обратно в JS-части.

В-третьих, я не увидел в вашем коде элемент $('#message'), в который вы выводите свое сообщение.

Для начала исправьте эти основные ошибки, а там уже смотрите по console и выводу php как будет работать код.

READ ALSO
Использование PHPExcel

Использование PHPExcel

Подскажите пожалуйста решение следующей проблемы: создаю прайс-лист в формате MS Excel (xlsx) при помощи PHPExcelДля этого в предварительно созданный...

373
Как не допустить записи html кода в &ldquo;базу данных&rdquo;?

Как не допустить записи html кода в “базу данных”?

Принцип работы моего кода следующий: если в введенной строке есть такие строчные смайлики(":)", ":(") то нужно их заменить на картинкиВот как...

191
Получить часть url (id)

Получить часть url (id)

Здравствуйте!

287
Совмещение front-end фреймворков с паттерном MVC

Совмещение front-end фреймворков с паттерном MVC

Из front-end фреймворков выбрал Vuejs

202