我有一个简单的搜索表单,其内容我想作为POST
请求发送到我的php查询。我使用AJAX发送它,到目前为止一切正常,但由于某种原因而不是发送输入字段的实际值,它总是发送一个空字符串。
有人可以解释一下我在这里做错了吗?
我的HTML:
<form id="searchbox">
<input type="text" placeholder="author, title, keyword...">
<input type="submit" value="Search">
</form>
我的js(console.log
行是为了查看发布的内容,即检查我的代码有什么问题):
$("#searchbox").submit(function(e) {
e.preventDefault();
console.log($("#searchbox").serialize());
$.post(
"db_queries/all_articles.php",
$( "#searchword" ).serialize(),
function(data) {
console.log(JSON.parse(data));
} //end response function
); //end search article POST request
})
我的php:
try {
$hostname = "localhost";
$username = "root";
$password = "";
$db = new PDO("mysql:host=$hostname;dbname=topdecka_PTC",$username, $password);
if (!empty($_POST)) {
$query = $db->prepare('SELECT * FROM articles WHERE title = :title');
$query->execute(array(':title' => 'test1'));
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
else {
$query = $db->prepare('SELECT * FROM articles');
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
die();
}
} catch (PDOException $e) {
echo "Error!: " . $e->getMessage() . "<br/>";
die();
}
答案 0 :(得分:1)
您的输入标记必须具有name
属性才能被序列化。