çoklu seçim birleştirmek çöktüğünü kullanarak

4 Cevap

Ben böyle bir php sayfası var:

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

Şöyle catch_combo.php olarak seçilen değerleri yakalamaya çalışıyorum:

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

Ben bu çalıştırdığınızda diyor

'Implode için geçti geçersiz argümanlar' Ben bir şey eksik?

4 Cevap

$two = '';

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

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

Implode gerek yok.

ama daha kolay bir yoldur:

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

Bunu şikayet neden implode(), o bir dizi geçirmeden değiliz. Bu deneyin:

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

Soru implode() için geçti geçersiz argümanlar hakkında oldu

Için 2. argüman implode() bir dizi olmalıdır.

Sizin örnek kod $ a not bir dizidir.