php - jQuery 提交 ajax 表单,带有 2 个提交按钮

标签 php javascript jquery

我试图实现以下目标,在 php 中我有一个这样的表单:

<form method="post"  id="form_1" action="php.php">
<input type="submit" value="add" name="sub"/>
<input type="submit" value="envoi" name="sub"/>
</form>

表单操作文件是:

<?php

if( $_POST["sub"]=="add"){  ?>

 <script>
 alert("")
 </script>
<?php  echo "ZZZZZZ";   ?>

<?php } ?>

所以这意味着如果我按 sub 并添加值,则会出现警报提示,我如何做同样的事情(区分两个提交)但使用 Ajax 请求:

以下代码不起作用:

 $(function(){
      $('form#form_1').submit(function(){
var _data= $(this).serialize()
$.ajax({
        type: 'POST',
        url: "php.php?",
        data:_data,
        success: function(html){
         $('div#1').html(html)

          }
     })
})
  })
  </script>
</head>

<body>
<div id="1" style="width: 100px;height: 100px;border: 1px solid red"></div>

<form method="post"  id="form_1" action="javascript:;">
<input type="submit" value="add" name="sub"/>
<input type="submit" value="envoi" name="sub"/>
</form>
</body>

最佳答案

您可以将事件处理程序放在按钮上而不是表单上。从表单中获取参数,然后为按钮添加参数,并发布表单。确保处理程序返回“false”。

$(function() {
  $('input[name=sub]').click(function(){
    var _data= $('#form_1').serialize() + '&sub=' + $(this).val();
    $.ajax({
      type: 'POST',
      url: "php.php?",
      data:_data,
      success: function(html){
         $('div#1').html(html);
      }
    });
    return false;
  });
});

您必须显式添加“sub”参数,因为当您调用“serialize()”时 jQuery 不包含这些参数。

关于php - jQuery 提交 ajax 表单,带有 2 个提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3275640/

相关文章:

c# - ASP.Net Web 服务中的 JQUery 自动完成

php - 为什么框架和此类弃用函数而不是仅仅更新它们?

PHP 标准类问题

javascript - 为网络本地存储数据的最佳实践

javascript - 使用 Javascript 变量设置 Div 样式

javascript - 如何实现 Ben Alman 的 debounce jQuery?

php - 访问具有相同名称但不同 ID 的记录

javascript - 将内容类型更改为 JSON 时,从数据库加载更多内容不起作用

javascript - 闭包编译器无法编译保留字 "default"

php - 在提交表单之前获取复选框值