代码如下,但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>";
}
}
?>
如果您真的想使用&;而不是||,您的选择表单需要是:
<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不会计算为true。
编辑:仔细想想,你的表单必须是这样的,否则默认的空值将不会被捕获。当你决定使用&;或||
我建议在您的情况下使用||
而不是&&
,因为您希望检查它们中的任何一个是否为空,而不是它们是否都为空:
if(($_POST['term'] == "") ||
($_POST['when'] == "")) {
echo "Please Fill The Fields Left to Right";
echo "<br/>";
}
此外,请考虑使用!isset,这意味着变量未设置。
if(!isset($_POST['term'])||$_POST['term']=="||!isset($_POST['when'])||$_POST['when']=="){echo"请从左到右填充字段";echo"
";}其他{