2015-02-09 5 views
-1

Я пытаюсь использовать http://loopj.com/jquery-tokeninputФорматирование JSON выход

Мой PHP код выглядит следующим образом

$data = array(); 
$result=$this->ArticleTag->query("SELECT * FROM tbl_article_tags where name LIKE '".$_GET['q']."%'"); 
foreach ($result as $row){ 
$name ='id:'.$row['tbl_article_tags'] ['id'].',name:'.$row['tbl_article_tags']['name']; 
array_push($data, $name); 
} 
echo json_encode($data); 

, который дает мне выход как

["id :57, name :Editorial The Corporate","id :15, name :editorial","id :93, name :Editorial from abroad"] 

Мне нужно выводить результаты поиска в формате JSON в в следующем формате:

[ 
    {"id":"856","name":"House"}, 
    {"id":"1035","name":"Desperate Housewives"}, 
    ... 
] 

Я пробовал различную комбинацию, но не работал. Пожалуйста помоги.

ответ

1

Try this: полный код решения> Ваша проблема была в $name переменной ..

$data = array(); 
    $result=$this->ArticleTag->query("SELECT * FROM tbl_article_tags where name LIKE '".$_GET['q']."%'"); 
    foreach ($result as $row){ 
    $name = array(
      'id' => $row['tbl_article_tags']['id'], 
      'name' => $row['tbl_article_tags']['name'] 
      ); 
     $data[]=$name; 
    } 
    echo json_encode($data); 
0
$name = array('id' => $row['tbl_article_tags']['id'], 'name' => $row['tbl_article_tags']['name']); 

json_encode работы с многомерными массивами

-1

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

$data = array(); 
foreach ($result as $row) { 
    $tempArray = array(
      ['id'] = $row['tbl_article_tags'], 
      ['name'] = $row['tbl_article_tags']['name']); 
    array_push($data, $tempArray); 
} 
echo json_encode($data); 
Смежные вопросы