使用添加了变量的Javascript提交表单


Submit form using Javascript with added variable

我有一个HTML表单,它通过激发JavaScript代码的两个不同链接提交给PHP脚本。我需要的是能够通过两个JavaScript链接以不同的方式提交表单,这样我就可以在PHP方面检查这种差异。我意识到我可以用提交按钮来做这件事,但我正在努力避免这种情况。我希望这样的东西能起作用:

foo.html

<form name="fooform" action="fooscript.php" method="POST">
    <input type="text" name="footext">
</form>
<a onclick='document.fooform.submit();' href='#'>Do something</a>
<a onclick='document.fooform.submit();' href='#'>Do something else</a>
<!--
<a onclick='document.fooform.submit(0);' href='#'>Do something</a>
<a onclick='document.fooform.submit(1);' href='#'>Do something else</a>
-->

fooscript.php

<?php
    if(submit(0)){
        //Do something
    }
    if(submit(1)){
        //Do something else
    }
?>

我会在表单中创建一个隐藏字段。

<input type="hidden" id="submit_action" name="submit_action" value="" />

在脚本标签中提取提交表单的详细信息

function submitWithCommand(commandValue) {
    if (e = document.getElementById("submit_action")) e.value = commandValue;
    document.fooform.submit();
    return false;
}

然后在提交表单之前添加值。

<a onclick='submitWithCommand("something");' href='#'>Do something</a>
<a onclick='submitWithCommand("something else");' href='#'>Do something else</a>
<form name="fooform" action="fooscript.php" method="POST">
    <input type="text" name="footext" />
    <input type="hidden" name="triggered_by" value="" />
</form>
<a onclick='document.triggered_by.value=1; document.fooform.submit();' href='#'>Do something</a>
<a onclick='document.triggered_by.value=2; document.fooform.submit();' href='#'>Do something else</a>

PHP:

var_dump($_POST['triggered_by']); // 1 or 2