JQuery没有收到POST请求的结果

时间:2013-07-01 18:54:34

标签: jquery ajax http-post concrete5

我很欣赏有关此特定主题的帖子很多,但似乎都没有解决我的特定问题。

我正在使用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));

3 个答案:

答案 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']。请在控制台中查看响应文本。