Как отобразить данные полученные от вебсервиса в таблице Jquery?

Здравствуйте друзья. помогите пожалуйста разобраться с задачкой.

На 1с опубликовал веб-сервис, от которого получаю данные об остатках номенклатуры.
Данные отображаю на сайте и получаю их через Soap-запросы.

Для ясности приведу код файла:
<?php

header("Content-Type: text/html; charset=UTF-8");
$SoapClient1C = new SoapClient("http://localhost/wsBase/ws/getProduct.1cws?wsdl");
$List = $SoapClient1C->ПолучитьНоменклатуру();

if(is_array($List->return->Список )) 
{
foreach ( $List->return->Список as $key) 
 
echo $key->УникальныйИдентификатор." ".$key->Наименование." ".$key->Цена." ".$key->Остаток." "."<br>";
 
 } else
echo $List->return->Список->УникальныйИдентификатор." ".$List->return->Список->Наименование." ".$List->return->Список->Цена." ".$List->return->Список->Остаток;

?>


Однако, толку от простого вывода как вы понимаете нету, хочется выводить данные в таблицу с возможности сортировки и поиска. Решил сделать при помощи вот этой прекрасной библиотеки
DataTables.

В примерах указанных на сайте таблицы выводятся
в следующем виде,

<table id="example" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
 
        <tfoot>
            <tr>
                <th>Name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Age</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </tfoot>
 
        <tbody>
            <tr>
                <td>Tiger Nixon</td>
                <td>System Architect</td>
                <td>Edinburgh</td>
                <td>61</td>
                <td>2011/04/25</td>
                <td>$320,800</td>
            </tr>
 </tbody>
</table>


Как же мне обеспечить вывод получаемых данных в такую таблицу??
Понимаю, что нужно циклом заполнять каждую строчку, да вот не знаю как реализовать.
Буду рад помощи, или подсказкам.
  • Вопрос задан
  • 1478 просмотров
Решения вопроса 1
heksen
@heksen
можно так на jquery:
$("#имя таблицы").append("<tr><td>"+данные+"</td></tr>");
Данные следует получать через ajax запрос..Например:
$.ajax
		({
		  url:  "ваш.php",
		  data: "func=ПолучитьНоменклатуру",
		  async: false,
		  success: function( data )
		  {
		    var object = JSON.parse( data );
		    $.each( object , function( key, val )
		    {
		      $("#имя таблицы").append("<tr><td>"+val.наименование+"</td></tr>");
		    });
		  } 
		});

Примерно так, но следует доработать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mgis
@mgis Автор вопроса
Ребят, помогите допилить перебор массива:
Перебираю следующим кодом:
<?php
header("Content-Type: text/html; charset=UTF-8");
$SoapClient1C = new SoapClient("http://localhost/wsBase/ws/getProduct.1cws?wsdl");
$List = $SoapClient1C->vernutcatalog();

if(is_array($List->return->Список )) 
{
foreach ( $List->return->Список as $key)
  $json_data['data'] = array("$key->УникальныйИдентификатор","$key->Наименование","$key->Цена","$key->Остаток");
    echo json_encode($json_data, JSON_UNESCAPED_UNICODE);  
} else
echo $List->return->Список->УникальныйИдентификатор." ".$List->return->Список->Наименование." ".$List->return->Список->Цена." ".$List->return->Список->Остаток;
 ?>

В итоге получаю,
{"data":["d7dcab78-9886-11df-80c5-000423debe0a","Перекиси водорода раствор 3% фл. 100мл пластик","0","2800"]}

то есть выбирается лишь первый элемент массива, а последующие опускаются.

Если сделать так:
$json_data[''] = array("$key->УникальныйИдентификатор","$key->Наименование","$key->Цена","$key->Остаток");

то перебираются все элементы, но мне нужно чтоб они были помещены в массив data.

______________________________________________________________________________________________
P.S. Правильный цикл в моем случае выглядел так.
foreach ( $List->return->Список as $key)
  $json_data[] = array("$key->УникальныйИдентификатор","$key->Наименование","$key->Цена","$key->Остаток");
  $table_json['data'] = $json_data;  
    echo json_encode($table_json, JSON_UNESCAPED_UNICODE);


Всем спасибо за помощь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы