我是PHP的新手,请原谅这个问题或问题是否令人困惑 我正在尝试创建一个具有2个下拉选项的搜索表单:St。Peter或JHS。用户输入教授的名字然后选择 教授教的学校。表格在下面
<form name=form action="form.php" method="GET">
<input type="text" name="find" />
<select name="school[]" >
<option value="">School</option>
<option value="1">St.Peter</option>
<option value="2">JHS</option>
</select>
<input type="submit" name="Submit" value="Search" />
</form>
我正在使用的form.php脚本是
<?php
$q=$_GET["find"];
$s=$_GET["school"];
$con = mysql_connect('localhost', 'peter', 'abc123');
if($q && ($s==St.Peter))
echo "that professor belongs to St.peter H.S";
else{echo "that professor does not belong to this school"; }
elseif($q && ($s==JHS))
echo "that professor belongs to JHS H.S";
else{echo "that professor does not belong to this school"; }
?>
当我运行它时,我得到的输出是。 该教授属于St.peter H.S,该教授属于JHS H.S
如果我改变脚本只是为了看第一个if语句是否正确,例如
<?php
$q=$_GET["find"];
$s=$_GET["school"];
$con = mysql_connect('localhost', 'peter', 'abc123');
if($q && ($s==St.Peter))
echo "that professor belongs to St.peter H.S";
else{echo "that professor does not belong to this school"; }
?>
这回事说教授属于St.peter H.S,但如果改变
if($q && ($s==St.Peter))
到
if($q && ($s==St.P))
它回应了同样的事情。这个教授属于St.peter H.S,
答案 0 :(得分:1)
if($q && ($s==St.Peter))
这在语法上是不正确的。 PHP会将'St.Peter'视为未定义的常量,而不是字符串,您应该
if($q && ($s == 'St.Peter'))
同样,你的大if / else块不正确。
if (...) {
} else {
...
} else if {
...
}
这是一个语法错误。 {(1}}是if()系列中的最后一个“if all else failed”。你不能跟其他人一起跟进。该块应
else
答案 1 :(得分:1)
您必须与SELECT OPTION的值进行比较。尝试:
if($q && ($s=='1'))
答案 2 :(得分:0)
那是因为实际发送的是选项的“值”,而不是文本。你应该寻找“1”或“2”
if ($q && $s == 1)
答案 3 :(得分:0)
Marc B. +传染性
<select name="school[]" >
这指示PHP将GET ['school']参数创建为数组。适用于多个复选框等。你应该去
<select name="school" >