代码如下,但if&&声明不起作用。我正在测试下拉列表和搜索框同时为空,但是当我从下拉列表中选择某些内容时,它会执行代码,否则我会填写搜索框,否则如果两个空白都有效。
<form action="post.php" method="POST">
<select name = "when">
<option selected= ""> </option>
<option value="breakfast">Breakfast</option>
<option value="lunch">Lunch</option>
<option value="dinner">Dinner</option>
<option value="snacks">Snacks</option>
</select>
<input type="text" name="term" value="" id="search">
<input type="submit" name="submit" value="Submit">
<div id="results"></div>
</form>
<?php
$term = $_POST['term'];
$when = $_POST['when'];
if(($_POST['term'] == "") &&
($_POST['when'] == "")) {
echo "Please Fill The Fields Left to Right";
echo "<br/>";
} else {
$foods = mysql_query("SELECT * FROM foods WHERE food_name LIKE '%$term%' ") or die(mysql_error());
while($food = mysql_fetch_array($foods)) {
$name = $food['food_name'];
$foodid = $food['food_ID'];
echo "<div class='results'><a href='http://localhost:8888/food/interact.php?add=$name'>" . $name . "</a></div>";
}
}
?>
答案 0 :(得分:4)
如果你真的打算使用&amp;&amp;而不是||,您的选择形式需要是:
<select name = "when">
<option value="" selected="selected"> </option>
<option value="breakfast">Breakfast</option>
<option value="lunch">Lunch</option>
<option value="dinner">Dinner</option>
<option value="snacks">Snacks</option>
</select>
您没有传递默认选定项目的空值,而&& if
clouse的评估值不会为真。
编辑:再想一想,你的表单就像这样,或者不会捕获默认的空值。你决定使用&amp;&amp;或||
答案 1 :(得分:1)
if((!$_POST['term']) || (!$_POST['when'])) {
echo "Please Fill The Fields Left to Right";
echo "<br/>";
}
答案 2 :(得分:0)
我建议您在案例中使用||
代替&&
,因为您要检查其中任何一个是否为空,如果两者都为空,则不会:
if(($_POST['term'] == "") ||
($_POST['when'] == "")) {
echo "Please Fill The Fields Left to Right";
echo "<br/>";
}
答案 3 :(得分:0)
另外,请考虑使用!isset,这意味着未设置变量。
if(!isset($ _ POST ['term'])|| $ _POST ['term'] ==“”||!isset($ _ POST ['when'])|| $ _POST ['when' ] ==“”){
回声“请填写从左到右的字段”;
echo“
”;
} else {