2011-08-20 45 views
0

我有1個HTML表單,它通過2個不同的鏈接提交給一個PHP腳本,該鏈接用於激發Javascript代碼。我需要的是能夠通過2個Javascript鏈接以不同方式提交表單,以便我可以檢查PHP方面的差異。我意識到我可以用提交按鈕來做到這一點,但我試圖避免這種情況。我希望像這樣的工作:使用帶有添加變量的Javascript提交表單

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 
    } 
?> 

回答

1

我會在窗體中創建一個隱藏字段。

<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> 
+0

+1,用於將其封裝到函數中,而不是在onClick中添加更多垃圾。 – jessegavin

+0

工作得很好,封裝使複製變得簡單。謝謝! – abarrington

1
<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 
+0

由於某些原因,此方法未提交表單。謝謝你的幫助! – abarrington