2011-09-08 48 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