2011-02-17 121 views
0

我是PHP新手,所以請原諒如果這個問題或問題似乎令人困惑 我想創建一個搜索表單,有一個2下拉選項:聖彼得或JHS。用戶鍵入教授的名字,然後選擇教授教授的學校 。形式有以下PHP搜索表單

<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"; } 

?> 

這種回聲指出,教授所屬的聖彼得H.S,如果變化

if($q && ($s==St.Peter)) 

if($q && ($s==St.P)) 

它回聲了同樣的事情。這回應出教授屬於St.peter H.S,

+1

使用乾淨的縮進!這是學習編程的第一條規則。 – powtac 2011-02-17 17:11:51

回答

0

這是因爲實際發送的是選項的「值」,而不是文本。你應該尋找 「1」 或 「2」

if ($q && $s == 1) 
+0

if($ 1 && $ s == 1) thats off不應該喜歡如果($ q && $ s =='1') 謝謝你 – user621799 2011-02-17 17:50:37

+0

修好了,謝謝 – helloandre 2011-02-17 21:22:48

1
if($q && ($s==St.Peter)) 

這在語法上是不正確的。 PHP會看到「聖彼得」作爲一個未定義的常量,而不是字符串,你應該有

if($q && ($s == 'St.Peter')) 

同時,你的大的if/else塊是不正確。您有

if (...) { 
} else { 
    ... 
} else if { 
    ... 
} 

這是一個語法錯誤。一個else是if()系列中的最後一個「if all else failed」。如果你不能跟隨其他人。該塊應該是

if (...) { 
} else if (...) { 
} else if (...) } 
} else { 
} 
1

您必須與SELECT OPTION的值進行比較。嘗試:

if($q && ($s=='1')) 
0

馬克B. +傳染性

<select name="school[]" > 

這指示PHP創建GET [ '學校']參數數組。用於多個複選框等。你應該去

<select name="school" >