【问题标题】:jQuery prompt before submitting a form, PHP distinguishing which button was used提交表单前的jQuery提示,PHP区分使用了哪个按钮
【发布时间】:2017-03-21 14:33:56
【问题描述】:

大家早上好。 我在使用 sweetalert 向用户显示提示时遇到问题(这有点无关紧要)

简化的 HTML

<form class="form-horizontal" method="post" action="post.php?id=<?php echo $wid; ?>"> 
    <button type="submit"  name="submit1" class="btn btn-success">Submit #1</button>
    <button type="submit" name="submit2" class="btn btn-warning">Submit #2</button>
    <button type="button" class="btn btn-danger "onclick="remove()">REMOVE()</button>
</form>

表单提交到的 PHP。我必须区分使用如此简化的按钮:

if(isset($_POST['submit1'])){
    //do stuff
} elseif(isset($_POST['submit2'])) {
    //do second stuff
}

最后是显示提示的JS代码:

function remove() {
    var id = <?php echo $wid ?>;
    swal({
        title: "Sure?",
        type: "warning",
    }).then(function() {
        swal({
            title: "Removed!",
        });
        removeRow();
    });
    return false;
}

function removeRow() {
    var id = <?php echo $wid ?>;
    window.location = 'delete.php?&id=' + id;
}

但是我不能用这两个提交按钮做同样的提示。 有什么问题:

  1. 它必须是提交按钮,否则 PHP 将无法识别哪个 按钮用于提交
  2. 当我点击提交按钮时,表单会在“阅读”javascript 代码之前自动提交(有点逻辑),但即使我停止了事件,然后尝试使用 jQuery 进行 .submit(),它也不会成功,因为我无法从按钮级别,因此表单不会传递用于提交的按钮的名称 - 不起作用

我如何显示用户提示并且它在用户接受警告之前保持提交并且能够区分哪个按钮用于提交它(所以 php 获取提交的按钮名称)?

【问题讨论】:

  • 对不起,我在写问题时不小心把它删除了。
  • 我建议你使用ajax来执行这个操作。因为您有几个按钮,它们必须执行不同的操作
  • 它仍然无法向用户显示提示,因为在单击按钮后仍将提交表单。即使我这样做:$('#submit1').click(function(){ $('#formW').attr('action', 'page1'); }); $('#submit2').click(function(){ $('#formW').attr('action', 'page2'); });
  • 如果您查看t4t5.github.io/sweetalert 中的html 源代码,您会发现您可以按照“基本消息”示例使用document.querySelector('ul.examples li.message button').onclick = function(){ swal("Here's a message!"); };。或者,创建一个函数,该函数将启动某些东西并基于将 id 添加到您的按钮。我当然在这里大声思考。另请参阅其他示例及其来源。
  • 提示用户使用 if (confirm('are you sure')) {}

标签: javascript php jquery forms events


【解决方案1】:

我将 PHP 编辑成两个单独的文件。 之后,我在单击两个按钮时添加了两个侦听器。我删除了它们的提交类型,然后添加了 jQuery 代码:

$( "#submit1" ).click(function() {
var id = <?php echo $wid ?>;
    swal({
        title: "Sure?",
        type: "warning",
    }).then(function() {
        swal({
            title: "Success!",
        });
        $('#formW').attr('action', 'script.php?id='+id);
        $('#formW').submit();
    });
    return false;
});

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2013-01-15
    • 2013-02-23
    • 2015-09-20
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多