Php, html form submisson


Php, html form submisson

为什么我下面的代码总是返回"请填写所有字段"?

<?php
if($_POST['submitted']=='') {
    echo '
        <form action="" method="POST">
            Total Trip Time: <input type="text" name="EndTime"><br>
            Miles Per Hour:  <input type="text" name="Distance"><br>
                             <input type="hidden" name="submitted" value="1">
                             <input type="submit" value="Submit">
        </form>
    ';
} else if ($_POST['EndTime'] == '') {
    echo '
        <H1>Please fill out all fields</H1>
        <form action="" method="POST">
            Total Trip Time: <input type="text" name="EndTime"><br>
            Miles Per Hour:  <input type="text" name="Distance"><br>
                             <input type="hidden" name="submitted" value="1">
                             <input type="submit" value="Submit">
        </form>
    ';
} else if ($_POST['Distance'] == '') {
    echo '
        <H1 style="color: red;">Please fill out all fields</H1>
        <form action="" method="POST">
            Total Trip Time: <input type="text" name="EndTime"><br>
            Miles Per Hour:  <input type="text" name="Distance"><br>
                             <input type="hidden" name="submitted" value="1">
                             <input type="submit" value="Submit">
        </form>
    ';
} else {
    echo "<table border='1'>";
    for ($StartTime = 1; $StartTime <= $_POST['EndTime']; $StartTime++) {
        echo"<tr><td>".$StartTime."</td><td>".$StartTime*$_POST['Distance']."</td></tr>";
    }
}
?> 

以下表单简化有效(对我来说 - 见 http://www.floris.us/SO/form.php):

<?php
if(isset($_POST['submitted']) && $_POST['EndTime']!='' && $_POST['Distance']!='') {
    echo "<table border='1'>";
        for ($StartTime = 1; $StartTime <= $_POST['EndTime']; $StartTime++) {
            echo"<tr><td>".$StartTime."</td><td>".$StartTime*$_POST['Distance']."</td></tr>";
        }
    }
    else {
        if(isset($_POST['submitted'])) {
            echo "You did not fill out all fields!";
        }
        echo '
            <form action="" method="POST">
                Total Trip Time: <input type="text" name="EndTime"><br>
                Miles Per Hour: <input type="text" name="Distance"><br>
                <input type="hidden" name="submitted" value="1">
                <input type="submit" value="Submit">
            </form>                 
            ';
    }
?> 
尝试使用

$_REQUEST 而不是使用 $_POST 。如果出现任何错误,请在此处发布并告诉我错误是什么。

<?php
    if(isset($_REQUEST['submitted']) == "" || isset($_REQUEST['EndTime']=='') || isset($_REQUEST['Distance'] =='')) {
       echo '
                <form action="" method="POST">
                    Total Trip Time: <input type="text" name="EndTime"><br>
                    Miles Per Hour: <input type="text" name="Distance"><br>
                    <input type="hidden" name="submitted" value="1">
                    <input type="submit" value="Submit">
                </form>                 
                ';
        }
        else {
     echo "<table border='1'>";
            for ($StartTime = 1; $StartTime <= $_POST['EndTime']; $StartTime++) {
                echo"<tr><td>".$StartTime."</td><td>".$StartTime*$_POST['Distance']."</td></tr>";
            }
        }
    ?>

试试这样。使用 jquery 或 javascript 进行验证

<?php
if(isset($_POST['submitted']) &&  isset($_POST['Distance']) && isset($_POST['EndTime']))
{
 echo "<table border='1'>";
        for ($StartTime = 1; $StartTime <= $_POST['EndTime']; $StartTime++) {
            echo"<tr><td>".$StartTime."</td><td>".$StartTime*$_POST['Distance']."</td></tr>";
        }
        echo '</table>';
}else{
    echo '
            <div id="err" style="color:red;"></div>
            <form action="" method="POST" onsubmit="return validate()">
                Total Trip Time: <input type="text" id="EndTime" name="EndTime"><br>
                Miles Per Hour: <input type="text" id="Distance" name="Distance"><br>
                                <input type="hidden" id="submitted" name="submitted" value="1">
                                <input type="submit" value="Submit">
            </form>                 
          ';
}
?>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
function validate()
{
    endtime = $("#EndTime").val();                   
    distance = $("#Distance").val();
    submitted = $("#submitted").val();
    if(endtime == "" || distance == "" || submitted == "")
    {
        $("#err").html("Please enter all fields");
        return false;
    } else {
        $("#err").html("");
    }
    return true;
}
</script>