jQuery技术:PHP不从jQuery AJAX表单提交发布数据提交

我有一个带有提交按钮的表单,如下所示:

我的jQuery AJAX是:

 $.ajax({ url: $('form.addEdit').attr('action'), type: $('form.addEdit').attr('method'), data: $('form.addEdit').serialize(), success: function(html) { } }); 

在我的PHP中,我无法获取$ _POST [‘delete-image’] isset(),尽管发送表单的提交按钮名为“delete-image”。

 if (isset($_POST['delete-image'])) { } 

应该设置“delete-image”,因为那是我点击的提交按钮。 为什么PHP没有从这个AJAX提交中获取此发布的变量?

    在jQuery文档中: http ://api.jquery.com/serialize/
    只有成功的控件序列化,请参阅以下文档:

    注意:只有“成功控件”序列化为字符串。 没有提交按钮值被序列化,因为表单未使用按钮提交。 要使表单元素的值包含在序列化字符串中,该元素必须具有name属性。 复选框和单选按钮(“radio”或“checkbox”类型的输入)中的值仅在选中时才包括在内。 文件选择元素中的数据未序列化。

    所以提交buttn不会通过jQuery.serialize()函数序列化。 解决方法是你可以添加隐藏的输入,它将被序列化。

    更新:
    您需要更改表单提交ajax以绑定按钮单击。 在ajax请求中,您可以手动添加按钮值。 以下是我正在运行的代码。

     $( "#delImage" ).click(function( event ) { event.preventDefault(); $form = $(this).parent('form'); $btnid = $(this).attr('name'); $btnval = $(this).attr('value'); $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: { "btnid" : $btnid, "btnval": $btnval, "form-data": $form.serialize() }, success: function(html) { console.log(html); } }); }); 

    如果您不希望在单击按钮时重新加载页面,则只需使用发送ajax调用的简单方法:

     var mydata = $('form.addEdit').serialize(); $.ajax({ type:'POST', url: 'file.php', data: mydata, dataType:'json', success: function(responseText){ // enter code here }); } }); 

    只是让你的表单没有这些元素

     

      以上就是jQuery教程分享PHP不从jQuery AJAX表单提交发布数据提交相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/541315.html

      (0)
      上一篇 2021年1月3日
      下一篇 2021年1月3日

      精彩推荐