2012-02-08 21 views
0

値を持つパラメータを持つ2つのリンクがあります。いずれかのリンクをクリックすると、同じchallenge.phpページに送られます。パラメータの値を見つけて、そのパラメータがURLにどのような値を持っているかに応じてページを表示したいと思っています。 このスクリプトは機能していないようです。

<a href="http://www.site.com/challenge.php?id=1">Complete Challenge 1</a> 
<a href="http://www.site.com/challenge.php?id=2">Complete Challenge 2</a> 


$id = $_GET['id']; 
if ($id=1) { 
     echo "This is challenge 1 completed"; 
} elseif ($id=2) { 
    echo "This is challenge 2 completed"; 
else { 
    echo "The URL parameters didn't work"; 
} 
+1

=あなたは以前の条件の場合は –

答えて

1

2つの値を比較する場合、代入演算子=ではなく比較演算子==を使用します。コードは次のようになります。他

$id = (int)$_GET['id']; 

if ($id == 1) { 
     echo "This is challenge 1 completed"; 
} elseif ($id == 2) { 
    echo "This is challenge 2 completed"; 
else { 
    echo "The URL parameters didn't work"; 
} 
+0

である必要があります。その場合は===を使用することもできます。 – djot

1

あなたが1 == $idを使用している場合、それは$id = 1の過ちを犯してから保存されます=代わりの状態での条件で==

$id = $_GET['id']; 
if (1 == $id) { // you can use === if you want to compare type also 
     echo "This is challenge 1 completed"; 
} elseif (2 == $id) { 
    echo "This is challenge 2 completed"; 
else { 
    echo "The URL parameters didn't work"; 
} 

を使用しています。 1 = $idと書いてもエラーが発生する

1

if ($id == 1)を試してみたらどうでしょうか? :) '=='はブール演算子ですが、あなたはそれを知っていると思います。

0

使用$ ID == 1あなたは$ IDを作る1.

==はそれが等しい場合に見える、=左変数に正しい値になります。

0

まず第一に、intに$_GET値をキャスト:あなたの条件に

$id = (int) $_GET['id']; 

あなたは$id変数に値を代入されます。

$id = 1 

間違いがあり、あなたはそれを比較する必要があります数字:

$id == 1 

e:

$id = (int) $_GET['id']; 
if ($id == 1) { 
     echo "This is challenge 1 completed"; 
} elseif ($id == 2) { 
    echo "This is challenge 2 completed"; 
else { 
    echo "The URL parameters didn't work"; 
} 
関連する問題