Json编码多个匹配项。

时间:2013-03-23 21:51:30

标签: php jquery mysql ajax json

我正在构建一个基于Jquery / ajax的下拉列表,用于从数据库中检索不同的表单。响应ajax调用的“php函数”可能必须返回多于一组的表单,具体取决于id,这意味着在同一个id下可以有多个记录。然后将数据作为Json编码的html表发送回脚本。问题是如何在服务器端处理这个问题。我希望这个问题很清楚。

我的代码:

<?php
if (!empty($_GET['id'])) {
$id = $_GET['id'];

try {


$objDb = new PDO('mysql:host=localhost;dbname=blankett', 'root', 'root');
$objDb->exec('SET CHARACTER SET utf8');

$sql = "SELECT * 
    FROM `forms`
    WHERE `id` = '$id'";
$statement = $objDb->prepare($sql);
$statement->execute(array());
$list = $statement->fetchAll(PDO::FETCH_ASSOC);



if (!empty($list)) {

   foreach ($list as $row ) {
     $out = array();
     $out[] = '<tr><td><a href="'.$row['link_form'].'">'.$row['name_form'].'</a></td> <td>'.$row['date_added'].'</td></tr>';
   }

  echo json_encode(array('error' => false));
} else {
  echo json_encode(array('error' => true));
}


} catch(PDOException $e) {
echo json_encode(array('error' => true));
}

}else {
echo json_encode(array('error' => true));
}


?>

1 个答案:

答案 0 :(得分:2)

好吧,只需在你的json中回显数组:

echo json_encode(array('error' => false, 'forms' => $out));