2009-11-19 24 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']); 
}