一种形式PHP中的两个表单操作

时间:2013-02-05 17:31:59

标签: php javascript html

我的php代码有两个问题。

第一个是变量

$linkorig

可以看到

$_POST['formsubmitted']

,当我从重定向页面获取它时?

第二个问题是在完成所有错误检查后,如何通过不同的操作提交表单?

也许可以使用一些javascript或php代码。

<?php
    $linkorig=$_POST['link-orig']; // get destination link from redirected page , for excample http://mikrotik.lv -- works fine 
    if (isset($_POST['formsubmitted'])) 
    {
        // script try login with credentials  with  <form action="login.php"   --- works fine
        //Error checking !
        if (empty($error)) //if not found any errors {
            // login with credentials and same form but  with  <form action="other_login.php"   --- i dont know how to do :(
        }
    }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Login Form</title>
    </head>
    <body>
        <form name="login"  action="login.php"  method="post" class="registration_form" onSubmit="return doLogin()" >
            <input type="hidden" name="dst" value="<?php echo $linkorig; ?>" />
            <input type="hidden" name="popup" value="true" />
            <fieldset>
                <legend>Login Form  </legend>
                <p>Enter Your username and Password Below  </p>
                <div class="elements">
                    <label for="name">Email :</label>
                    <input type="text" id="e-mail" name="username" size="25" value="" />
                </div>
                <div class="elements">
                    <label for="Password">Password:</label>
                    <input type="password" id="Password" name="password" size="25" />
                </div>
                <div class="submit">
                    <input type="hidden" name="formsubmitted" value="TRUE" value="OK" />
                    <input type="submit" value="Login" />
                </div>
            </fieldset>
        </form>
        <!-- $(if error) -->
            <br /><div style="color: #FF8080; font-size: 9px"> </div>
        <!-- $(endif) -->
        <script type="text/javascript">
            <!--
            document.login.username.focus();
            //-->
        </script>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

您可以轻松地将一个表单用于两个操作:

<form method='post' action='post.php'>
<input type='text' name='field1' />
<input type='text' name='field1' />

<button name='action1'>action1</button>
<button name='action2'>action2</button>
</form>

在页面post.php上:

您的所有变量都位于$_POST,即$_POST['field1'], $_POST['field2'], $_POST['action1'] and $_POST['action2'] 使用简单的条件:

if(isset($_POST['action1'])) {
  //some code here but still check action2

  // edit : you can call the action2 with jquery and [ajax][1]
  // you can use header('location: http://example.com?field1='.$_POST['field1'].'&field2='.$_POST['field1']) to redirect, but no output before using header => see ob_get_clean() if you have any problem.
}
else { exit; } //stop it all if action1 failed

但是,如果您重定向页面,则不再有$ _POST变量。您可以使用/page.php?var1=...和$ _GET,就像使用$ _POST一样。