PHP POST数据数组为空

时间:2015-11-09 14:24:35

标签: php jquery ajax post

我正在使用HTML,PHP和AJAX来创建搜索字段。 这是我的HTML代码:

<form action="search.php" id="search_form" method="post" >
    <div class="search_bar">
    <input type="text"  name="search_text" id="search_text" placeholder="Search anything" >
    </div>
    <div class="search_button">
    <button type="submit" id="search_button"  name="search_submit" >Search</button>
    </div>
    </form>

这是我的AJAX代码:

$('#search_button').click(function(event) {

    var search_data = $('#search_text').val();

    var postData ={
            "content":search_data};

    event.preventDefault();

    $.ajax({
        type: 'POST',
        url: 'search.php',
        data:{myData: postData},
        error: function()
        {
           alert("Request Failed");
        },
        success: function(response)
        {        
            alert("Success");
        }
    });

});

在PHP中,我尝试了以下内容:

$obj = $_POST['myData'];
echo $obj;
print_r($_POST);

我得到的只是:

  

注意:第9行的C:\ xampp \ htdocs \ workspace \ MakeMyApp \ WebContent \ search.php中的未定义索引:myData

Array ( )

我也尝试过:

file_get_contents('php //input')

但我也得到了空数组。我不知道究竟是什么问题。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

很抱歉,由于我没有足够的声誉,我无法发表评论。

我试图复制你的问题,似乎对我有用。

这是HTML页面......

<html>
<head>

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){

    $('#search_button').click(function(event) {

    var search_data = $('#search_text').val();

    var postData ={
            "content":search_data};

    event.preventDefault();

    $.ajax({
        type: 'POST',
        url: 'search-submit.php',
        data:{myData: postData},
        error: function()
        {
           alert("Request Failed");
        },
        success: function(response)
        {        
            alert(response);
        }
    });

});

});
</script>

</head>
<body>
<form action="search.php" id="search_form" method="post" >
    <div class="search_bar">
    <input type="text"  name="search_text" id="search_text" placeholder="Search anything" >
    </div>
    <div class="search_button">
    <button type="submit" id="search_button"  name="search_submit" >Search</button>
    </div>
    </form>
</body>
</html>

这是接收PHP页面

<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>

在ajax请求中,您可以看到我使用alert在警报中输出响应但是,如果一切顺利,它应该输出接收PHP页面输出的内容。

此外,它可能没有多大帮助,但他是我将如何完成ajax请求;它的代码略少,您不必单独定义每个表单字段(如果您有多个字段)

$(document).ready(function(){

    $('#search_form').submit(function() {
        var formData = $(this).serialize();

    $.ajax({
        type: 'POST',
        url: 'search-submit.php',
        data: formData,
        error: function()
        {
           alert("Request Failed");
        },
        success: function(response)
        {        
            alert(response);
        }

    });

    return false;

});

});