2009-11-18 78 views
4

比方說,我有這樣的形式和腳本:如何獲得提交按鈕POST數據,而由JavaScript form.submit提交()

<SCRIPT LANGUAGE="JavaScript"> 
function handleSubmit() { 
    return false; 
} 
function Delete(element) { 
var is_confirmed = confirm("Delete this record? \n" + title + " " + date); 
if (is_confirmed) {   
    document.getElementById("Novinky").submit(); 
} 
} 
</SCRIPT> 

<form action="index.php" method="post" id="Novinky" onsubmit="return handleSubmit();"> 
<input onclick="Delete(this)" value="Smazat" name="delete[12]" type="submit" /> 
</form> 

有沒有辦法讓按鍵數據(delete[] -> Smazat)提交POST請求?

+0

讓你的,這樣的onclick將工作 – Treby 2009-11-18 10:07:18

+0

它的工作原理反正..我選擇提交按鈕所以它會禁用JavaScript – 2009-11-18 15:25:27

回答

2

您似乎在提交與包含「刪除」按鈕(id=Novinky)的表單不同的表單。在這種情況下,你可以在這個表單中添加一個隱藏字段,並設置它的值刪除按鈕的價值只是在提交前:

if (is_confirmed) {      
    document.getElementById('myhiddenfield').value = element.value; 
    document.getElementById('Novinky').submit(); 
} 

UPDATE:

而是附加一個單擊處理的刪除按鈕,你可以這樣做:

<script type="text/javascript"> 
function handleSubmit() { 
    return confirm('Delete this record?'); 
} 
</script> 

<form action="index.php" method="post" id="Novinky" onsubmit="return handleSubmit();"> 
    <input value="Smazat" name="delete[12]" type="submit" /> 
</form> 

這將自動發佈刪除按鈕,當您提交它的值。


UPDATE2:

<script type="text/javascript"> 
function handleSubmit() { 
    // check which button was clicked: 
    alert(window.clicked); 
    return confirm('Delete this record?'); 
} 
</script> 

<form action="index.php" method="post" id="Novinky" onsubmit="return handleSubmit();">   
    <input onclick="window.clicked=this.value;" value="Smazat" name="delete[12]" type="submit" /> 
</form> 
+0

我的壞...我不小心刪形式的ID,而工作簡化示例;) 我想避免使用任何額外的隱藏字段......我想知道如果我能以某種方式修改submit()的功能或將按鈕設置爲POST ... – 2009-11-18 10:13:10

+0

請參閱我的更新。 – 2009-11-18 11:22:17

+0

只要表單中沒有任何不同的提交按鈕(例如,編輯,保存等),就可以工作。這不是我的情況(對不起,我應該明確表示......我想我我簡單說了一下這個例子:)) – 2009-11-18 13:08:02

1

我剛剛發現這個代碼做的伎倆:

<SCRIPT LANGUAGE="JavaScript"> 
function Delete(element) { 
var is_confirmed = confirm("Delete this record? \n" + title + " " + date); 
return is_confirmed;  
} 
</SCRIPT> 

<form action="index.php" method="post" onsubmit="return handleSubmit();"> 
<input onclick="return Delete(this)" value="Smazat" name="delete[12]" type="submit" /> 
</form> 

不過,我仍然有興趣是否有答案,我原問題

0

Java腳本

document.cookie = "button="+element.value+";path=/<path of php file>; domain="+window.location.hostname+";"; 

PHP

<? echo $_COOKIE["button"]; ?> 

一定要提供PHP的路徑。或者只設置當前頁面的路徑。

例如:path =/sample

不包含php頁面。

+0

對不起,但我不明白alert()與POST請求中發送的內容有什麼關係..:/ – 2009-11-18 10:19:19

+0

這是一個有趣的解決方案,但是我的要點是讓腳本的行爲與禁用JavaScript的表單一樣,因此表單可以在使用和不使用JavaScript的情況下工作,並且不必在服務器端單獨處理...因此POST請求 – 2009-11-18 15:22:27