请考虑以下几点:
PHP:
<form id="f-submit" method="post" action="">
<button class="btn-submit" name="update" type="submit">APPROUVE</button>
</form>jQuery:
$("button.btn-submit").click(function(event) {
event.preventDefault();
var formData = $("#f-submit").serializeArray();
formData.push({actiontype: "delete"});
$.ajax({
type: "POST",
url: "includes/submit_comment.php",
data: formData
}).done(function(data) {
alert(data);
}).fail(function(data) {
alert('Ajax failed.');
});
});submit_comment.php:
if (isset($_POST['actiontype'])) {
echo 'found';
} else {
echo 'not found';
}出于某种原因,我总是被“找不到”。
但是,当我在没有序列化的情况下发送数据时,
var formData = ({actiontype: "delete"});很管用!
所以问题肯定在serializeArray()上,但是它是什么呢?我要疯了这一次..。
发布于 2015-04-07 18:48:32
试试这个系统:
formData.push({name: 'actiontype', value: delete});发布于 2015-04-07 18:36:02
serializeArray()生成由名称和值组成的对象。您试过调试var formData = $("#f-submit").serializeArray();吗?在您的示例中,它不应该生成名称/值对,因为:
只有“成功的控件”被序列化到字符串。没有序列化submit按钮值,因为表单没有使用按钮提交。要使表单元素的值包含在序列化的字符串中,元素必须具有name属性。没有序列化来自文件select元素的数据。jQuery文档
因此,您必须添加与提交输入不同的输入。让我们检查一下这个智能解决方案:jQuery serializeArray不包括单击的提交按钮
https://stackoverflow.com/questions/29498412
复制相似问题