2015-05-02 20 views
5

我創建了這個簡單的Php示例來開始我的學習。在PHP中使用IF示例

這是的Index.html:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Prova</title> 
</head> 
<body> 
<form action="script.php" method="get"/> 
<table> 
    <tr> 
     <td>Cognome</td> 
     <td><input type="text" name="cognome" id="cognome"/></td> 
    </tr> 
</table> 
<table> 
    <tr> 
     <td><input type="submit" value="Invia"/></td> 
    </tr> 
</table> 
</form> 
</body> 
</html> 

這是script.php的:

<?php 
    $cognome = $_REQUEST['cognome']; 
    if ($cognome = "Giacomo") 
     { 
     echo "<p><img src='Giacomo.jpg'<p>/>"; 
     } 
    else 
     { 
     echo "<img src='IMG.jpg'<p>/>"; 
     } 
?> 

其運行,但如果我寫賈科莫顯示Giacomo.jpg和image.jpg的。我只想要Giacomo.jpg。

感謝

+3

以下答案以及HTML錯誤應該是'

'。 – chris85

+0

您的表單作爲GET請求發送,所以您應該使用'$ _GET'變量。使用'$ _REQUEST'變量可能會導致意想不到的問題(除非您專門將代碼設計爲方法不可知)。 –

回答

4

您在if語句中給$cognome = "Giacomo"(被評估爲之後true),你應該=====而不是比較:

if ($cognome === "Giacomo") 
    echo "<p><img src='Giacomo.jpg'></p>"; 
else 
    echo "<p><img src='IMG.jpg'></p>"; 

附:它應該是<p></p><img >

+0

ok notlylyse現在只能看到一張圖片。但是在圖像的末尾出現「;} else {echo」這部分代碼。爲什麼? –

+0

@Frik:每個'if/else'後面只有一行,所以我省略了花括號。 – potashin

1

您需要使用==供對比,不是=,你應該解決像這樣的HTML標籤:

<?php 
    $cognome = $_REQUEST['cognome']; 
    if ($cognome == "Giacomo") 
    { 
    echo "<p><img src='Giacomo.jpg'></p>"; 
    } 
    else 
    { 
    echo "<p><img src='IMG.jpg'></p>"; 
    } 
?> 
2

您至少有兩種選擇:

1)使用=====運營商

<?php 
    $cognome = $_REQUEST['cognome']; 
    if ($cognome === "Giacomo") 
    { 
    echo "<p><img src='Giacomo.jpg'<p>/>"; 
    } else { 
    echo "<img src='IMG.jpg'<p>/>"; 
    } 
?> 

2)使用strcmp函數:

<?php 
    $cognome = $_REQUEST['cognome']; 
    if (strcmp($cognome,"Giacomo") === 0) 
    { 
    echo "<p><img src='Giacomo.jpg'<p>/>"; 
    } else { 
    echo "<img src='IMG.jpg'<p>/>"; 
    } 
?> 

我希望我已經幫你了。

+0

啊,如果您使用'='運算符,則將該值賦給該變量。 –

1

就像提到notulysses,使用$cognome = "Giacomo"將設置變量(甚至在if語句),因爲單=

使用==的評估,用來質疑和兩側比較兩個對象的值的==但它只比較值,而不是類型。

比較值和類型是用=== 完成例如,

$number1 = 5; 
$number2 = "5"; //notice the quotes 
if ($number1 == $number2) { echo "true"; } else { echo "false"; } 
// this will echo true 

然而

$number1 = 5; 
$number2 = "5"; 
if ($number1 === $number2) { echo "true"; } else { echo "false"; } 
// this will echo false` 

這樣做的原因是$number1被評價爲一個數字,而$number2是因爲引號的字符串。

我在你的代碼中看到的另一件事是

echo "<img src='IMG.jpg'<p>/>"; 

應該

echo "<p><img src='IMG.jpg' /></p>"; 

而且同樣適用於你的其他圖像。