所以我的问题是,当我将表单提交到PHP时,使用jQuery通过AJAX提交表单时,使用jQuery AJAX时哪个按钮提交表单并不重要,但是当使用表单操作时,表单会提交并让我知道删除还是删除按下了更新按钮。例如,这是提交表单的HTML
<input type="submit" name="update" value="Update">
<input type="submit" name="delete" value="Delete">
这是下面的AJAX调用。
$(document).ready(function() {
$("#update-form").submit(function () {
$.ajax({
type: "POST",
url: "updateHandler.php",
data: $("#update-form").serialize(),
success: function(data) {
var login = JSON.parse(data);
if (login.success) {
alert(login.message); //Show the ticket was updated!
} else {
alert(login.message);
}
}
});
return false;
});
});
现在这是我的AJAX调用的PHP代码。
<?php
$json_data = array();
if(isset($_POST['delete'])) {
$json_data['message'] = 'Ticket was deleted!';
} else {
$json_data['message'] = 'Ticket was updated!';
}
// Encode response as JSON
echo (json_encode($json_data));
?>
编辑
在被问到控制台输出之后,这就是我得到的
如果来自adeneo答案的代码,则“未按下按钮”
{“成功”:true,“消息”:“未按任何按钮”}
数组
(
[票数] => 6
[技术人员] => 1
[类别] => 1
[电子邮件] => [email protected]
[名称] =>内德·斯塔克
[国家] =>加拿大
[issue] =>我遇到产品Y的问题
)
参考方案
发生的事情是按钮未与表单序列化,因为在以编程方式提交for时,它不知道您按下了什么按钮,因此它不会发送。因此,我所做的就是放置一个隐藏的输入,并根据他们单击提交表单的按钮来更改其值。
另请注意,我默认选择要更新的值。我这样做是为了让用户使用键盘上的Enter键提交表单,它将自动执行操作并且不会出错。
的HTML
<input type="hidden" name="choice" id="choice" value="update">
<input type="submit" name="update" value="Update">
<input type="submit" name="delete" value="Delete">
jQuery的
$('input[type="submit"]').click(function() {
$('#choice').val(this.name)
});
的PHP
if(isset($_POST['choice']) && $_POST['choice'] == "update") {
//if user clicked update
} else if(isset($_POST['choice']) && $_POST['choice'] == "delete") {
//user clicked delete.
}
jQuery Ajax加载仅适用于单个单词变量 - php在我的PHP文件中,我将一些变量从输入框传递到链接中,该链接通过jQuery的ajax load函数在其URL中使用该变量加载页面。整个系统运行良好,但仅适用于单字变量。每当涉及到空格时,我的Ajax通话都会中断。我假设这是一个编码问题,但是我也有一些疑问。基本上,它归结为我的PHP文件中的这一行代码,这导致了混乱。是否有可能找出格式是否正确,或者为什么在多…
jQuery-找不到Ajax网址 - php好的,我敢肯定这确实很容易,而且我很愚蠢,但是似乎并不能深入了解它。我试图从我的js文件“ custom.js”中对“ helpers.php”中的某些代码进行简单的AJAX调用。但是,我仍然收到404错误,因为我似乎并没有正确遍历文件夹,尽管我确信我正在...我的文件夹结构如下:html index.php js/ custom.js includes h…
使用jQuery将值增加到attr - php我想增加i的值。 “ for”循环不起作用。$("a[href$='.xls']").appendTo(".xl1").attr('id','xl'+i); 我搜索所有excel文件,并将它们放在容器中并增加其id的值。谢谢吉恩 参考方案 $("a[…
获取PHP中的cookie值? - php我在jQuery中创建cookie。我可以在Firefox中进行验证。但是,当我尝试打印cookie或将其分配给另一个值时,我无法获取它。我也使用会话。然后,我用PHP开始了会议。我的打印或分配cookie值的代码如下所示echo $_COOKIE['a']; 用于分配值$b=$_COOKIE['a']; 使用jQue…
使用jQuery加载页面但不加载到容器div中 - php我从一个下拉菜单中选择文件类型,然后我希望它在页面上触发,该页面根据选择的内容生成文件,并使用php中的header强制下载该文件。这是jQuery。$('#exportdropdown').change(function(){ var searchinput = $('#searchinput').val(); va…