【问题标题】:input type=text $POST value is null输入类型=文本 $POST 值为空
【发布时间】:2010-07-27 17:43:32
【问题描述】:

我正在尝试通过 jquery on keydown 将搜索文本框的值发送到 php 页面,以便它可以显示包含搜索关键字的结果。但是,php 页面没有读取输入文本框的 $_POST [不是按钮]。

html:

.keydown(function() {
     //create post data
      var postData = { 
    "bsearch" : $(this).val()
     };

      //make the call
      $.ajax({
       type: "POST",
       url: "quotes_in.php",
      data: postData, //send it along with your call
      success: function(response){
    $("#bquote").html(response);
    }
    });
})

. . . 

 <!-- Begin Search -->
        <div id="search" style="display:none;">
                <input type="text" class="bsearch" name="search" value="Search" />
        </div>
 <!-- End Search -->

php:

include_once "inc/class.quotes.inc.php";
$quotes = new Quotes($db);


if (isset($_POST['search'])) 
    //$quotes->searchQuotes();
    echo 'Searching. . ';
else
    $quotes->displayQuotes();

它似乎没有读取$_POST['search'],因为它没有回显文本'Searching. .',而是转到else部分并显示引号。

我尝试了这段代码来了解发生了什么:

echo "<pre>";
print_r($_POST);
echo "</pre>";

这将显示一个空数组。我做错了什么?

【问题讨论】:

  • Firebug 是否显示您的 POST 请求?
  • 您的 ajax 调用填充的是 'bsearch' 而不是 'search'

标签: php html search parameters oop


【解决方案1】:

postData 对象键更改为"search" 或检查$_POST['bsearch']

var postData = { 
    "search" : $(this).val()
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-14
    • 2016-04-16
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    相关资源
    最近更新 更多