PHP提交主表单和javascript触发的辅助表单不起作用

时间:2017-09-12 17:55:59

标签: javascript php html forms

我已经在这方面工作了好几天,似乎无法深入了解它。

我已将问题减少到此。

我的表格如下所示:

<body>

    <form name="record" method="post" action="process.php">
        <input type="hidden" name="email_address" />
        <input type="hidden" name="postcode" />
    </form>
    <!--
        function doLogin() {
        document.record.submit();
        }
    //-->
    </script>
<!-- $(endif) -->

<table width="100%" style="margin-top: 10%;">
    <tr>
    <td align="center" valign="middle">
    <br />
    <table width="240" height="240" style="border: 1px solid #ffcccc; 
padding-top: 5px; padding-bottom: 5px;" cellpadding="0" 
cellspacing="0">
    <td align="center" valign="bottom" style="padding-top: 5px; 
padding-bottom: 5px;" height="175" colspan="2">

        <form name="login" action="<?php echo $linkloginonly; ?>" 
method="post" onSubmit="return doLogin()" >
            <input type="hidden" name="dst" value="<?php echo 
$linkorig; ?>" />
            <input type="hidden" name="popup" value="true" />
            <table width="100" style="padding-top: 5px; padding-
bottom: 5px;"
                <tr align="center" valign="top" height="50" 
colspan="2" style="padding-top: 5px; padding-bottom: 5px;"><img 
src="wi.png" height="41" width="200" style="padding-top: 5px; padding-
bottom: 5px;"></tr>
                <tr style="padding-top: 5px; padding-bottom: 
5px;"><img src="home.jpg" style="padding-top: 5px; padding-bottom: 
5px;"></tr>
                <div class="notice" style="color: #039bc3; font-size: 
9px; padding-top: 5px; padding-bottom: 5px;">Free WiFi<br 
/><br />Please enter a few quick details</div>

                <tr><td align="right">Email</td>
                <td><input style="width: 140px" 
name="email_address" type="text" /></td>
                </tr>

                <tr><td align="right">Postcode</td>
                <td><input style="width: 140px" name="postcode" 
type="text"/></td>
                </tr>

                <tr><td> </td>

                <td><input type="submit" value="Continue" 
/></td>

                </tr>
            </table>
        </form>
    </td>
    </tr>
    </table>

<!-- $(if error) -->
<br /><div style="color: #FF8080; font-size: 9px"><?php echo $error; 
?></div>
<!-- $(endif) -->

    </td>
    </tr>
</table>

<script type="text/javascript">
<!--
 document.login.username.focus();
//-->
</script>
</body>
</html>

单击时,表单应调用doLogin(),该表单应提交名为record的表单,并通过process.php将email_address和postcode传递给数据库

我已经证明了这部分是有用的,如果我只是通过修改动作部分并删除onSubmit而不是使用doLogin()从主窗体中调用process.php但是我似乎无法以这种方式使它工作,如图所示。我需要以这种方式工作,以便我可以构建更多功能。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

嗨,当你添加一个新表格时问题就出现了,原因就是现在没有运行。当您将第二个表单添加到同一页面时,js中的表单调用将更改为:

在你的情况下

document.form [index]:

//if you want call <form name="record" // first form = index 0
document.forms[0].submit();
//or
document.forms["record"].submit();
//or
document.record.submit();
//if you want call <form name="login" //second form = index 1
document.forms[1].submit();
//or
document.forms["login"].submit();
//or
document.login.submit();
//etc ...

问候。