【发布时间】:2014-08-08 20:14:03
【问题描述】:
我正处于在网站上整合搜索工具的早期阶段,但我遇到了一个绊脚石。目前,我只是在做一些测试,使用 jQuery AJAX,但问题肯定出在我的 php 中:
...
$searchq = $_POST['searchq'];
$output = '';
$db = new PDO($dsn, $mysqluser, $mysqlpass, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
function getData($db){
// Prepare resource query statement
$stmt = $db->query("SELECT * FROM mod_site_content WHERE alias = ':searchq'");
// Bind paremeters
$stmt->bindParam(':searchq', $searchq, PDO::PARAM_STR);
// Execute query
$stmt->execute();
// Grab result
$output = $stmt->fetchAll();
// Return output
done($output);
};
try {
getData($db);
} catch(PDOException $e){
echo $e->getMessage();
}
function done($out){
echo $out;
}
目前我只是在我的 AJAX .done() 方法中将结果传递给 console.log()。无论我是否搜索 应该 存在的东西,上面的输出“Array”都没有。
如果我将上面的内容稍微更改为:
function getData($db){
...
$output = $stmt->fetchAll();
$result = implode($output,"--");
// Reture output
done($result);
};
我什么也得不到。
mod_site_content 看起来像这样:
id | type | alias
-------------------------
1 | document | home
2 | document | projects
...
谢谢。
【问题讨论】:
-
$searchq定义在哪里? -
是的,刚刚注意到 - 见已编辑。
-
列名是别名??为什么?
-
函数内部没有定义变量,这是由于php中的变量范围!请阅读它!
-
echo json_encode($out)并确保您在浏览器上期待一个 json 对象。