Javascript ajax序列化数组不输出任何值

Javascript ajax序列化数组不输出任何值,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个HTML表单,如下所示: <div id="error_message"></div> <form action="daterequest.php" id="daterequest_form" method="post"> <select name="option1"> <option value="1">1</option>

我有一个HTML表单,如下所示:

<div id="error_message"></div>

<form action="daterequest.php"  id="daterequest_form" method="post">

            <select name="option1">
                <option value="1">1</option>
                <option value="0">0</option>
                <option value="2">2</option>
            </select>

            <input type="text" name="option2" >

    </form>
我的
警报(数据)只给我
[object object],[object object]

我无法获取要在警报中显示的数据。。我应该看到
[option1值],[option2输入值]


此外,一旦我弄清楚如何在警报中获取数据,如何在PHP中检索它<代码>$\u POST[“这里有什么”]

警报
不会提供对象的详细信息,请改用
控制台.log()

console.log(data);
看一看


希望这有帮助。

这里没有问题-问题是因为您正在使用
alert()
进行调试。这意味着显示的变量被强制为字符串,因此对象数组被转入
'[object object],[object object]'
。而是使用
console.log()
调试代码

另外,从您正在尝试做的事情来看,我建议使用
serialize()
方法更适合您的需要,并且您应该挂接到
表单的
submit
事件,以便使用键盘的人在按Enter键提交表单时也触发事件。试试这个:

$('#daterequest_form').on('submit', function (e) {
    e.preventDefault();
    var data = $(this).serialize();   
    console.log(data);

    $.ajax({
        url: 'daterequest.php',
        type: 'POST',
        data: data, 
        success: function(response) {
            if (response == 'empty') { 
                $('#error_message').text('ERROR MESSAFGE') 
            } else {
                $('#error_message').html(response);
                $('#daterequest_form').fadeOut('400');
            }; 
        }
    });     
});
然后,在PHP中,您可以通过使用
$\u POST
并指定表单值的
名称来检索传递的数据:

var option1 = $_POST['option1'];
var option2 = $_POST['option2'];
不要使用
alert()
进行调试,因为它将值强制为字符串-因此出现了
[object object],[object object]
。改用
console.log()
。从您的描述来看,它听起来像是
serializeArray()
工作正常。我想说,
serialize()
听起来更适合您的需要;或警报(数据选项1);代替警报(数据);
var option1 = $_POST['option1'];
var option2 = $_POST['option2'];