2014-12-25 3 views
0

Im, использующий Bootstrap Table (http://wenzhixin.net.cn/p/bootstrap-table/docs/examples.html), и Im, имеющий проблемы с привязкой моих данных к таблице с использованием URL-адреса данных.Bootstrap Table data-url

Heres мой код таблицы:

<table data-toggle="table" data-side-pagination="server" data-url="<? echo $letServiceHandler->getEmployees($_SESSION['api_key'],2); ?>" data-cache="false" data-height="299"> 
<thead> 
    <tr> 
     <th data-field="id">Item ID</th> 
     <th data-field="name">Item Name</th> 
     <th data-field="price">Item Price</th> 
    </tr> 
</thead> 
</table> 

getEmployee называет свой отдых WebService, который возвращает массив JSON, который выглядит следующим образом:

[ 
{"id":"33","name":"5yhjtyjyas 444","active":"0","user_id":"1","no_of_reports":"0"}, 
{"id":"29","name":"AAA","active":"1","user_id":"1","no_of_reports":"0"}, 
{"id":"20","name":"aasdasd","active":"1","user_id":"1","no_of_reports":"0"} 
] 

getEmployee выглядит следующим образом:

// Gets employees 
public function getEmployees($api_key,$active) 
{ 
    $headers = array('Content-type: application/json','Authorization: '.$api_key,); 

    if($active==0) 
    { 
     $curl = curl_init(GET_ALL_INACTIVE_EMPLOYEES);  
    } 
    else if($active==1) 
    { 
     $curl = curl_init(GET_ALL_ACTIVE_EMPLOYEES);  
    } 
    else 
    { 
     $curl = curl_init(GET_ALL_EMPLOYEES);  
    } 

    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_HTTPGET, true); 
    curl_setopt($curl, CURLOPT_USERPWD, $api_key); 
    $curl_response = curl_exec($curl); 

    if ($curl_response === false) 
    { 
     $info = curl_getinfo($curl); 
     curl_close($curl); 
     die('error occured during curl exec. Additioanl info: ' . var_export($info)); 
    } 

    curl_close($curl); 
    $decoded = json_decode($curl_response,true);  

    return json_encode($decoded['employees']); 
} 

Обратите внимание, что Im декодирует ответ, а затем снова кодирует его, выбирая только сотрудников вложенный массив.

Я попытался «эхом» json_encode ($ decoded ['employees']) выйти и создать файл данных и поместить его в файл с именем data.json и вставить его в свой URL-адрес. Это отлично сработало.

+0

До сих пор я исправил свою проблему, поставив функцию getEmplooyees в отдельный файл (getEmployee.php), который делает то же самое, что и моя предыдущая функция, за исключением того, что она не является функцией php. Это закончилось тем, что работало, но я все еще немного смущен, какая разница между ними, вызывая функцию внутри URL-адреса данных и помещая ссылку на файл, который делает то же самое ??? .. – DTH

ответ

0

После того, как я столкнулся с разработчиком таблицы, я обнаружил, что моя попытка вставить данные в таблицу путем установки URL-адреса данных в мою функцию php не является правильным способом использования этого " имущество".

Мне нужно поставить мою функцию в отдельный файл php, чтобы заставить ее работать, что я сделал, как упоминалось в моем комментарии выше.

Так решение:

<table data-toggle="table" data-side-pagination="server" data-url="getEmployees.php?id=2" data-cache="false" data-height="299"> 
<thead> 
    <tr> 
     <th data-field="id">Item ID</th> 
     <th data-field="name">Item Name</th> 
     <th data-field="price">Item Price</th> 
    </tr> 
</thead> 
</table> 

getEmployee.php будет делать запрос на мой веб-сервиса и возвращает результат, который затем применяется к столу.