2009-11-19 6 views
1

J'ai une page php comme ceci:en utilisant imploser de combiner plusieurs sélectionnez

<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> 

Je suis en train d'attraper les valeurs sélectionnées dans catch_combo.php qui ressemble à ceci:

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

Quand je exécutez ce qu'il dit

'Arguments invalides passés pour implode' Il me manque quelque chose?

+0

Exécuter un print_r ($ _ REQUEST [ 'SeLr']) - il ne contient pas la valeur que vous pensez. – leepowers

Répondre

1
$two = ''; 

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

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

Pas besoin d'imploser.

0

La question portait sur des arguments non valides passés pour implode()

Le 2ème argument en faveur implode() doit être un tableau.

$ a dans votre exemple de code est et non un tableau.

1

mais est moyen plus simple:

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

+1. merci pour celui-ci. – JPro

0

Vous n'êtes pas passer un tableau à implode(), c'est la raison pour laquelle il se plaint. Essayez ceci:

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