AJAX jQuery不显示返回的数据

时间:2016-09-19 14:39:47

标签: javascript php jquery html ajax

我有一个脚本来获取数据并将其加载到div中,代码工作正常并显示用户ID列表如果我不使用任何表单值并且如果我不使用type =“POST”,但当我使用$ _POST值时,它不起作用(没有结果,也没有控制台错误信息):

HTML:

 <form name='newUser' id="searchForm" method="POST">
<input type="text" name="look_for" id="look_for">
<input type="text" name="lookage_from" id="age_from">
<input type="text" name="age_to" id="age_to">
</form>

fetchusers.php

$look_for = $_POST['look_for'];
$age_from = $_POST['age_from'];
$age_to = $_POST['age_to'];
$array = getProfilePicsList($look_for,$age_from,$age_to); //a function that select * from ...
echo json_encode($array);

jquery代码:

$("#searchForm").submit(function(event)
{
    $.ajax({
        type: 'POST',
        url: 'models/fetchUsers.php', //the script to call to get data
        dataType: 'json',             //data format
        success: function(data)       //on recieve of reply
        {
            $.each($(data), function(key, value) {
                $('#itemContainer').append(value.user_id);
            });
        }
    });
    return false;
});

1 个答案:

答案 0 :(得分:0)

在您的ajax请求中,您错过了data。只需添加:

data: $("#searchForm").serialize(),

示例:

$.ajax({
    type: 'POST',
    url: 'models/fetchUsers.php', //the script to call to get data
    dataType: 'json',             //data format
    data: $("#searchForm").serialize(),
    success: function(data)       //on recieve of reply
    {
        $.each($(data), function(key, value) {
            $('#itemContainer').append(value.user_id);
        });
    }
});

不使用data参数,您无法获取$_POST数组中的值。

一些参考文献: https://api.jquery.com/jquery.post/ http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp