2011-09-08 71 views
0

在決定page1.php中,我使用與URL傳遞變量而不是能充分利用switch語句

<a href="page2.php?choice=<?php echo $value?> & item1=<?php echo $abs1?> & item2=<?php echo $abs2?>" title="Link to next page">Download</a> 

在使page2.php,我正確地接收這些變量的IAM能夠呼應。但是Switch語句不起作用。

echo $_REQUEST["choice"];echo "<br>"; //printing variable to debug 
echo $_REQUEST['item1'];echo "<br>"; //printing variable to debug 
echo $_REQUEST['item2'];echo "<br>"; //printing variable to debug 

switch((string)$_REQUEST["choice"]) { 
    case "Value1": 
      echo "Value 1 selected"; 
      break; 
    case "Value2": 
      echo "Value 2 selected"; 
      break; 
    case "Value3": 
      echo "Value 3 selected"; 
      break; 
     default: 
           echo "No Value selected"; 
    } 

它總是給:沒有價值選擇。請幫助,提前致謝。

+0

那麼,打印'$ _REQUEST [「選擇」]'輸出什麼? –

回答

1

使用var_dump($_REQUEST)看到你收到的數據,並修剪()值您收到。

switch(trim($_REQUEST["choice"])) { 
    case "Value1": 
      echo "Value 1 selected"; 
      break; 
    case "Value2": 
      echo "Value 2 selected"; 
      break; 
    case "Value3": 
      echo "Value 3 selected"; 
      break; 
     default: 
           echo "No Value selected"; 
    } 
+0

Thx Pheonix。它完美地工作。我將額外的空格傳遞給變量。 Iam能夠使用echo來查看變量,然後使用var_dump($ _ REQUEST)會產生什麼影響? – Sumit

3
<?php echo $value?> & item1=<?php echo $abs1?> 
       ^whitespace 

更好的可讀性(噸的替代品)

echo "<a href=\"page2.php?choice={$value}&item1={$abs1}&item2={$abs2}\" title=\"Link to next page\">Download</a>"; 
+0

yup,並且也沒有分號 –

+0

省略分號很好 – ajreal

2

你有一個像下面的網址:

page2.php?choice=VALUE & item1=VALUE & item2=VALUE 

我注意到一些空間在那裏(之前和之後&),那麼你的選擇價值將有一個尾隨空格。或者trim選擇字符串,或者從URL中刪除空格。

+0

Thx opatut。它通過刪除空格來工作。 – Sumit