日期:2014-05-16  浏览次数:20356 次

如何用javascript修改表单的action的属性(试了好久,就是没有弄出来)(急,在线等!)
本帖最后由 u011552243 于 2013-10-21 17:54:30 编辑
先上代码:

<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"];