知道哪个按钮提交了一个表单(PHP和Javascript)

时间:2018-05-09 01:45:58

标签: javascript php html

我有一个按钮,我用来提交表单(测验)。我还有另一个按钮来执行此操作,但它是动态构建的。请注意以下代码的工作流程。

最终,我希望PHP知道按下哪个按钮来提交表单。因此,我在下面的name="save_progress"代码中添加了<button>。但是,包括它会自动提交表单并绕过我的javascript中的setTimeout()。删除它会使setTimeout()功能正常,但我无法通过save_progress获取$_POST数据。

按钮...

<button class="btn btn-primary btn-block btn-lg" name="save_progress" onclick="save_progress(); return false;">Save Progress</button>

...的Javascript

//For saving quiz progress
function save_progress(){
    $('#save_progress_submit_container').modal('show');

    setTimeout(function() {
        submit_quiz();
    }, 1000);
}

//Submitting a quiz
function submit_quiz(){
    $("#answers").submit(); 
}

任何适合此工作流程的想法?我已经对此进行了审核(How can I tell which button was clicked in a PHP form submit?),但不幸的是,它并不适用于此。

1 个答案:

答案 0 :(得分:0)

总体上提出了更好的解决方案。我在表单中创建了<input type="hidden" id="submit_type" name="submit_type" value="">,然后根据单击的按钮使用jQuery更新了值。

对于未来的读者,@ Niloct在评论中的链接导致我得到save_progress() is not a function error,但确实阻止了提交。