2009-11-19 73 views
1

我有一个PHP页面是这样的:使用破灭组合多个选择

<html> 
    <body> 
     <form method="post" action="catch_combo.php"> 
      <select name="selr[]" multiple> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       <option value="3">3</option> 
       <option value="4">4</option> 
       <option value="5">5</option> 
      </select> 
      <input type="submit"> 
     </form> 
    </body> 
</html> 

我试图赶上catch_combo.php看起来像这样选择的值:

<?php 
$two; 
    if(isset($_REQUEST['selr'])) 
     { 
     $one=$_POST['selr']; 
     foreach ($one as $a) 
     { 
     $two = implode(",", $a); 
     } 
     echo $two; 
     } 
     ?> 

当我运行这个它说

'无效参数传递给implode'我错过了什么?

+0

运行print_r($ _ REQUEST ['selr']) - 它不包含您认为它的值。 – leepowers 2009-11-19 10:20:06

回答

1
$two = ''; 

if(isset($_REQUEST['selr'])) 
{ 

    $one=$_POST['selr']; 
    foreach ($one as $a=>$value) 
    { 
     $two .= ', '.$value; 
    } 
    echo $two; 
} 

不需要内爆。

0

问题是关于implode()

的第二个参数通过了implode()必须是一个数组无效的参数。

您的示例代码中的$ a是而不是数组。

1

,但更简单的方法是:

$two = implode(',', $_POST['selr']); 
+0

+1。感谢这一次。 – JPro 2009-11-19 10:35:50

0

你不是将数组传递给implode(),这就是为什么它抱怨。试试这个:

if (isset($_REQUEST['selr'])) { 
    echo implode(',', $_REQUEST['selr']); 
}