我很欣赏有关此特定主题的帖子很多,但似乎都没有解决我的特定问题。
我正在使用jQuery的post方法查询数据库中的值等于输入框中的文本。返回的结果应该显示在下面的文本输入框中。但由于某种原因,post请求的成功条件永远不会执行。从逻辑上讲,这表明我的帖子请求或它发布的PHP文件中都有错误,所以我将在这里粘贴两者的代码。
jQuery
$(document).ready(function() {
$('#title').change(function() {
var data = 'title='+$(this).val();
$.post('getinfo.php', data, function(response){
if(response.toString() == 'invalid')
{
alert('no such book title');
}
else
{
alert('book found');
}
});
return false; // required to not open the page when form is submited
});
});
获取info.php文件
<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
$title = $_post['title'];
$db = loader::db();
$res = $db -> Execute('select isbn from btBookList where title = ?', array($title));
if($res !=null)
{
$identifier = '';
foreach($res as $row)
{
$identifier = $row['isbn'];
}
echo json_encode($identifier);
}
else
echo 'invalid';
?>
这是使用混凝土5因此defined('C5_EXECUTE') or die(_("Access Denied."));
和
$db = loader::db();
$res = $db -> Execute('select isbn from btBookList where title = ?', array($title));
答案 0 :(得分:0)
在param中传递数据:
var data = {'title' : $(this).val()};
$.post('getinfo.php', data,function(response){
alert("Success: " + response);
}).fail(function() {
alert("Failed...");
});
答案 1 :(得分:0)
我认为这是您检索“已发布”数据的方式。尝试在$title = $_POST['title'];
中使用$_POST
(即getinfo.php
全部上限)。
答案 2 :(得分:0)
你的ajax电话是正确的。由于getinfo.php中发生了一些错误,因此永远不会执行post请求的成功条件。可能是因为$_post['title']
它应该是$_POST['title']
。请在控制台中查看响应文本。