【问题标题】:jQuery Ajax POST save delete submitjQuery Ajax POST 保存删除提交
【发布时间】:2017-09-07 21:47:49
【问题描述】:

这是我的代码

<form method="post" role="form" id="form" enctype="multipart/form-data"  autocomplete="off">

<input type="submit" id="save" name="save" value="Simpan Data Client" class="btn" style="font-size:0.7em; letter-spacing:1px; color:#666666" /> //For save
<input type="submit" id="delete" name="delete" value="Delete Client" class="btn-delete" style="font-size:0.7em; letter-spacing:1px; color:#666666; padding:8px 15px" /> //For Delete
</form>
<script type="text/javascript">
$("#form").on("submit",function (e)
{
    e.preventDefault();
    var formData = new FormData($(this)[0]); 
    $.ajax(
    {
       url:'Master/Database/Client/RunClient.php',
       type: 'POST',
       data: formData,
       contentType: false,
       enctype: 'multipart/form-data',
       processData: false,
       beforeSend:function()
       {
        document.getElementById("loading").style.display = "";
       },
       complete:function()
       {
        //document.getElementById("loading").style.display = "none";
       },
       success:function(result)
       {
         document.getElementById("info").innerHTML = result;
         var n = result.search("error");
         if(n < 0) /*document.getElementById("form").reset();*/ $(".input").val('');

       }
    });
});
</script>

我可以从我的表单中获取所有数据,除了我提交的输入类型。 我不能在我的 RunClient.php 中使用 isset($_POST["save"]) 和 isset($_POST["delete"])

【问题讨论】:

  • 你不会在 AJAX 请求中获取按钮数据,因为默认情况下它没有添加到 FormData。有需要可以append()
  • 谢谢我现在用单键选择

标签: javascript php jquery ajax


【解决方案1】:

为提交创建单独的函数并根据单击的按钮传递“提交类型”;

$('#save').click(function() {
  submitForm('save');
});
$('#delete').click(function() {
  submitForm('delete');
});
function submitForm(submittype) {
   var formData = new FormData(); 
   //push your form data to formData and add the submittype
   formData['type'] = submittype
}

在你的 php 文件中

$submittype = $_POST['type']; // 'save' or 'delete'
if($submittype == 'save') {
 //do save action
}
if($submittype == 'delete') {
 //do delete action
}

【讨论】:

【解决方案2】:

我用来避免提交输入和通过按钮进行更改。

<button type="button" id="save">SUBMIT</button> //For save

<script type="text/javascript">
$("#save").on("click",function (e)
{

});
</script>

因此,如果有人取消激活 javscript 表单将不会提交。

你可以这样发送数据:

data: {
    foo: 'var'
    foo2: 5
}, 

编辑。抱歉误解了你的问题。 只需使用 javascript 控制单击哪个按钮并使用隐藏字段分配一个值。

【讨论】:

    【解决方案3】:

    '$("#form").on("submit",function (e)' 将函数替换为

    $("#save").click(function() {

    });

    $("#delete").click(function() {

    });

    【讨论】:

    • 如果我这样做,我需要 2 个运行文件,对吗? 1个用于添加/更新,另一个用于删除?
    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多