Функция добавления () не работает в jQuery Ajax ответа PHP

#php #jquery #json #ajax #append

#php #jquery #json #ajax #добавить

Вопрос:

Я получаю массив через PHP и хочу добавить его в таблицу, но я пытался сделать это за последние 2 дня и использует все функции, доступные в stackoverflow, но они не работают… Пожалуйста, разработчики, помогите мне и научите меня, как я добавляю выходные данные в таблицу, как показано ниже —

PHP-код :-

 $result = $stmt->fetchAll();
 foreach($result as $data => $value) {

   //$QL QUERY HERE

   $data = array('name' => $value["name"], 'amount' => $amount, 'invoice' => $Invoice, 'response' => '200');
   echo json_encode($data);
 }
 exit();
 

Мой PHP-ответ :-

 {"name":"AMAZON_FBA","amount":"1","invoice":"25","response":"200"}
{"name":"AMAZON_IN","amount":"12","invoice":"22","response":"200"} 
{"name":"FLIPKART","amount":"42","invoice":"08","response":"200"} 
{"name":"PAYTM","amount":"36","invoice":"03","response":"200"} 
{"name":"Replacement","amount":"0","invoice":"17","response":"200"}
 

Ajax:-

 $.ajax({
.
.
  success: function (data) {
   var my_orders = $("table#salesReturnTB > tbody.segment_sales_return");

   $.each(data, function(i, order){
    my_orders.append("<tr>");
    my_orders.append("<td>"   data[i].order.name   "</td>");
    my_orders.append("<td>"   data[i].order.invoice   "</td>");
    my_orders.append("<td>"   data[i].order.amount   "</td>");
    my_orders.append("<td>"   data[i].order.response   "</td>");
    my_orders.append("</tr>");
   });   
  });
});
 

Комментарии:

1. Можете ли вы показать серверную часть?

2. Я обновил вопрос с помощью серверных частей

3. ваша проблема решена??

4. нет, пожалуйста, помогите

Ответ №1:

в PHP вам нужно определить $list переменную (потому что вы уже использовали $data имя в качестве входного параметра в своем цикле) и переместить echo вне цикла. В противном случае он повторяет каждый отдельный элемент данных, а не создает согласованный массив JSON. Список отдельных элементов без [..] на каждом конце недопустим в формате JSON, поэтому JavaScript не может его прочитать.

 $result = $stmt->fetchAll();
$list = array();

foreach($result as $data => $value)
{
   $list = array('name' => $value["name"], 'amount' => $amount, 'invoice' => $Invoice, 'response' => '200');
}

header("Content-Type: application/json");
echo json_encode($list);
exit();
 

И в JavaScript / jQuery у вас есть аналогичная проблема, когда вы используете data имя для представления двух разных вещей — списка элементов и отдельного элемента в цикле.

Это должно работать лучше:

 $.each(data, function(i, item) {
    my_orders.append("<tr>");
    my_orders.append("<td>"   item.name   "</td>");
    my_orders.append("<td>"   item.invoice   "</td>");
    my_orders.append("<td>"   item.amount   "</td>");
    my_orders.append("<td>"   item.response   "</td>");
    my_orders.append("</tr>");
});
 

Комментарии:

1. Вы помогли мне, и я полагаю, вы знаете, пожалуйста, помогите мне в прошлый раз, сэр, я знаю, что у вас большая репутация, но я здесь новичок. У меня ограниченные права доступа к statckoverflow. Никто не отвечает на мой вопрос.. Пожалуйста, помогите мне, как я добавляю foreach эти данные в таблицу через Jquery Ajax .. https://pastebin.com/t1rX3VYX пожалуйста, вставьте меня

2. @JohnCart пожалуйста, задайте новый вопрос по StackOverflow об этом, чтобы вы могли предоставить код, а также хорошее объяснение проблемы, больше, чем умещается в комментарии. Кроме того, тогда другие люди тоже могут помочь вам в этом. Вставьте ссылку на ваш новый вопрос здесь, и я посмотрю, если у меня будет немного времени.