我已将我的脚本上传到Fiddle,可在此处找到:http://jsfiddle.net/XdPk5/1/
我似乎无法让它运行,我正在尝试添加错误,例如行数= 0以及是否已发送空帖
的javascript:
$(document).ready(function(){
$(".search").click(function(){
$.post(
"search.php",
{ keywords: $(".keywords").val() },
function(data) {
$("div#search").empty();
obj = JSON.parse(data);
$("div#search").append(obj.id + " " + obj.title);
},
"json"
);
});
});
PHP:
<?php
$db = new PDO('mysql:host=localhost;dbname=db','root','');
$keywords = (isset($_POST['keywords']) === true) ? $_POST['keywords'] : '';
if (empty($keywords) === true) {
echo json_encode( "error" );
} else {
$query = $db->prepare("SELECT `media`.`id`, `media`.`title` FROM `media` WHERE `media`.`title` LIKE :keywords");
if ($query->rowCount() == 0) {
echo 'empty';
} else {
$query->bindValue(':keywords', '%' . $keywords . '%', PDO::PARAM_STR);
$arr = array();
$query->execute();
while( $row = $query->fetch(PDO::FETCH_ASSOC) ) {
$arr[] = array( "id" => $row["id"], "title" => $row["title"]);
}
echo json_encode( $arr );
}
}
?>
答案 0 :(得分:1)
这是错误的:
$query = $db->prepare("SELECT `media`.`id`, `media`.`title` FROM `media` WHERE `media`.`title` LIKE :keywords");
if ($query->rowCount() == 0) {
echo 'empty';
} else {
$query->bindValue(':keywords', '%' . $keywords . '%', PDO::PARAM_STR);
rowCount
; OR
或AND
将它们链接在一起。此外,在您执行echo 'empty';
的情况下,您没有返回有效的json。
在javascript中,您可能指的是dataType: "json"
,而不仅仅是"json"
,因为这不是有效选项。