繁体   English   中英

从链接提交表单并获取 $_Post 值

[英]Submit a form from a link and get $_Post value

我有以下问题。 我有一个包含多个链接的表单。 这些链接应该分配一个隐藏字段并使用一些 javascript 提交表单。

我正在使用 PHP 5.4。

当我使用按钮提交表单时,$_POST 包含数据。 但是当表单是来自 javascript 的提交者时,$_POST 是空的。

有什么线索吗?

<head>
   <script language="text/javascript">
    function affect(numMet)
    {
        document.forms['frmDemo'].num_met_choose.value = numMet;
        document.forms['frmDemo'].submit();
    }
    </script>
 </head>
 <body>

 <?php
   var_dump($_POST);
  ?>

 <form name="frmDemo" enctype="multipart/form-data" method="POST">
   <input  name="num_met_choose" id="num_met_choose">
   <a href="" onClick="javascript:affect('22');" >test 1</a>
   <a href="" onClick="javascript:affect('12');" >test 2</a>
   <button id="submit" type="submit">OK</button>
 </form>

你有两个问题。

第一个是这样的:

document.forms['frmDemo'].submit();

结合这个:

<button id="submit" type="submit">OK</button>

通过在表单中​​使用id="submit"的表单控件,您可以覆盖表单对象的submit属性。 它不是您可以调用的函数,而是成为对具有 id submit元素的引用。

您需要使用不同的 id(或者根本不使用,因为您似乎没有将其用于任何用途)。

您应该在浏览器的 JavaScript 控制台中遇到错误。 当您的 JS 没有按照您的预期运行时,请务必注意这一点。

即使你解决了这个问题,你还有另一个问题:

<a href="" onClick="javascript:affect('22');" >test 1</a>
  1. JavaScript 运行
  2. 表单即将提交
  3. 遵循该链接,因此毕竟没有提交表单

不要将链接用作运行 JS 的东西(除非您希望它用作链接,或者将其设置为使用链接作为后备)。

改用按钮( type="button" )。


那说。 根本不要为此使用 JavaScript。 您可以使用纯 HTML 获得相同的效果。

 <form enctype="multipart/form-data" method="POST">
    <button type="submit" name="num_met_choose" value="22">test 1</button>
    <button type="submit" name="num_met_choose" value="12">test 2</button>
 </form>
<form action="#" method="post">
   <input type="text"  name="num_met_choose" id="num_met_choose">
   <button type="submit" formaction="/action_page.php">Submit using 
   link</button>
</form>
    <head>
   <script language="text/javascript">
    function affect(numMet)
    {
        //document.forms['frmDemo'].num_met_choose.value = numMet;
        //document.forms['frmDemo'].submit();
        document.getElementById("num_met_choose").value=numMet;
        document.getElementById("frmDemo").submit();
    }
    </script>
 </head>
 <body>

 <?php
   var_dump($_POST);
  ?>

 <form name="frmDemo" enctype="multipart/form-data" method="POST">
   <input  name="num_met_choose" id="num_met_choose">
   <a href="#" onClick="affect('22');" >test 1</a>
   <a href="#" onClick="affect('12');" >test 2</a>
   <button id="submit" type="submit">OK</button>
 </form>

试试这个,让我知道结果是什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM