0

我很欣赏有很多关于这个特定主题的帖子,但似乎没有一个可以解决我的特定问题。

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

3 回答 3

0

我认为这是您检索“已发布”数据的方式。尝试在您$title = $_POST['title'];的.$_POSTgetinfo.php

于 2013-07-01T19:00:15.630 回答
0

在参数中传递数据:

var data = {'title' : $(this).val()};
$.post('getinfo.php', data,function(response){
 alert("Success: " + response);
}).fail(function() {
 alert("Failed...");
});
于 2013-07-01T18:56:33.307 回答
0

你的ajax调用是正确的。由于 getinfo.php 中发生了一些错误,post 请求的成功条件永远不会执行。这可能是因为$_post['title']它应该是$_POST['title']。请检查控制台中的响应文本。

于 2013-07-01T19:08:06.930 回答