Javascript ajax序列化数组不输出任何值
我有一个HTML表单,如下所示: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>
<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'];