2009-11-18 112 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