先上代码:
<script>
function changeSubmit()
{
alert("here!here!");
var draft_mode="draft";
document.getElementById("incident_form").action = "test.php?mode="+draft_mode;
$("#incident_form").submit();
}
</script>
<?php
这里定义$mode为 new或者edit
?>
<td width="40px"><a href="JavaScript:void(0);"><img src="../images/icons/icon_new_tillbud.png" title="save as draft" onclick="changeSubmit();" > </a></td>
<form method="post" action="incident.php?mode=<?php echo $mode?>" id="incident_form">
<td id="input_1" ><p>输入1:</p><input name="shuru_1" type="text" /></td>
<td id="input_2" ><p>输入2:</p><input name="shuru_2" type="text" /></td>
<input type="button" value="submit" >
</form>
上面是一个简单的表单incident_form,本来的功能是:提交表单到自身,即incident.php(这里略去了大量的保存数据的代码),并且根据$mode来执行保存数据、自动发送email的功能。
现在有了一个新需求,我在这个form的前面加了一个按钮,期望的功能是:点击这个按钮,依然提交该表单,但保存为草稿draft,这时只保存数据,不发送email。
我的想法是:点击新的按钮时,链接到js函数changeSubmit(),修改原表单action,赋予$mode不同的值,这样,我就可以分辨出来,并且据此不发送email.我写了changeSubmit()的函数,也设了一个test.php,但出来的结果$mode始终是new或者是edit,一直不是draft.
test.php的代码为:
<?php
echo " Yes!!!";
$mode = $_POST["mode"];
echo "<br>";
echo $mode;
echo "<br>";
echo "hehe!";
?>
我看到test.php的链接地址为http://。。。。。。。/pgm/test.php?mode=draft
按理说应该是对了啊,但显示的结果是:
Yes!!!
edit
hehe!
请大神们解答,能否给出正确的代码?
如果大神们有更好的思路,可否赐教?
再三感谢。(急,在线等!)
javascript
表单
php
属性
action
------解决方案--------------------
echo " Yes!!!";
$mode = $_POST["mode"];
在URL后的是get提交,不是post,post获取到的就是表单里面的mode项了,改成下面的
$mode = $_GET["mode"];