簡體   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