Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php multiple selectbox甚至不显示多重属性_Php - Fatal编程技术网

Php multiple selectbox甚至不显示多重属性

Php multiple selectbox甚至不显示多重属性,php,Php,在两种情况下,它只显示下拉列表宽度的单选项,即使$\u GET['type']='multiple'。 我试过了 <?php $tab=$_GET['liste']; $max=sizeof($tab); echo$max; echo$_GET['type']; if ($_GET['type']='multiple') { ?> <form name='form'> <select size=<?php $max ?> mult

在两种情况下,它只显示下拉列表宽度的单选项,即使$\u GET['type']='multiple'。 我试过了

<?php
$tab=$_GET['liste'];
$max=sizeof($tab);
echo$max;
echo$_GET['type'];
if ($_GET['type']='multiple')
{
    ?>
    <form name='form'>
    <select size=<?php $max ?> multiple>
    <?php
    for($i=0;$i<$max;$i++){
        echo"<option value=$i>$tab[$i]</option>";
                          }
    echo"</select>";
    echo"</form>";
}
else{
    ?>
    <form name='form'>
    <select size=<?php $max ?>>
    <?php
    for($i=0;$i<$max;$i++){
        echo"<option value=$i>$tab[$i]</option>";
        }
    echo"</select>";
    echo"</form>";


}
?>
>
而不是

 <select size=<?php $max ?> <?php echo$_GET['type']; ?>>
更改

<select size=<?php $max ?> multiple>


这里有很多问题需要解决(无意冒犯),所以让我们从

<select name='ville' size="<?=$max?>" multiple>
所有这些操作都是将$\u GET['type']变量的值赋值为'multiple',因此这将始终命中。接下来,如前所述,您需要进行更改

if($_GET['type']='multiple')
编辑:刚刚验证-如果字符串引用数组元素,则字符串中的变量必须始终包装在
{
}
中(这毕竟不适用于对象):

通常,最好始终使用
{
}
将变量包装成字符串,即使法律允许:

$a = array('foo' => 'bar');
$o = new stdclass;
$o->foo = 'bar';
$o->baz = array('foo' => 'bar');

echo "$a['foo']"; // Syntax error
echo "$o->foo"; // echos "bar"
echo "{$a['foo']}"; // echos "bar"
echo "$o->baz['foo']"; // Syntax error

这当然是一个多重列表。你可以按“ctrl”键并选择多个选项。顺便说一句,当你有数组时,你可以使forech不用于循环..你几乎有了它,但答案是
我注意到你将它更改为size=,但这没有帮助。它需要是size=”“或size=”“。请注意引号和echo语句(作为echo或=符号)。问题不在这里,我有多个问题。您忽略了引号和echo语句。法茨卡特也说了同样的话。你必须在它周围加上引号,并在里面加上=或echo语句。从技术上讲,它应该可以在没有引号的情况下工作,但这样做是一件好事,这样你就不会让一些值到处都是,并且相互碰撞。哦,好的一点,这是一个数字。真正的错误是没有echo或=现在显示选择框,但我无法进行多项选择。我的意思是(Ctrl+单击)不起作用?!
<?php $max ?>
echo"<option value=$i>$tab[$i]</option>";
<?php
$tab = $_GET['liste'];
$max = sizeof($tab);
#echo $max;
#echo $_GET['type'];

$multiple = '';

if($_GET['type'] == 'multiple')
{
    $multiple = ' multiple="multiple"';
}
?>

<form name='form'>
    <select size="<?php echo $max ?>" <?php echo $multiple; ?>>
    <?php
    foreach($tab as $key => $value)
        echo "<option value='{$key}'>{$value}</option>";
    ?>
    </select>
</form>
$a = array('foo' => 'bar');
$o = new stdclass;
$o->foo = 'bar';
$o->baz = array('foo' => 'bar');

echo "$a['foo']"; // Syntax error
echo "$o->foo"; // echos "bar"
echo "{$a['foo']}"; // echos "bar"
echo "$o->baz['foo']"; // Syntax error
echo "Something {$here}"; // Obvious variable is obvious