Php,html表单提交
为什么我下面的代码总是返回“请填写所有字段”Php,html表单提交,php,html,Php,Html,为什么我下面的代码总是返回“请填写所有字段” 以下对您的表单的简化有效(对我来说-请参阅): 像这样试试。使用jquery或javascript进行验证 <?php if(isset($_POST['submitted']) && isset($_POST['Distance']) && isset($_POST['EndTime'])) { echo "<table border='1'>"; for ($StartTime
以下对您的表单的简化有效(对我来说-请参阅):
像这样试试。使用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>
尝试使用$\u请求
而不是使用$\u发布
。如果发生任何错误,在这里张贴,并告诉我是什么错误
<?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>";
}
}
?>
为什么不尝试向输入字段添加required
,以确保已填写?不是你要寻找的答案,只是增加了一个检查,你知道哪些条件触发了消息吗?消息是红色的吗?你想要什么结果?为什么把所有的$\u POST都放在空值中?为什么不使用复合if
语句if(isset($\u POST['submitted'])和&$\u POST['Distance']!=''&…
@Floris你能帮我再详细一点吗。谢谢你,但是我该如何用同样的方法对缺少的字段进行错误更正。@无情的我已经更新了代码-现在,如果你第一个条件失败,但是$\u POST['submitted']
已设置,您知道其他字段中有一个未填写-因此您添加了错误消息。显然你可以从这里适应。谢谢你的建议,但我们不允许使用javascript o html5。
<?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>
<?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>";
}
}
?>