0

我正在尝试使这个内爆功能起作用。

这是表单部分,假设所有项目都已被选中。

<form method="post">
<select name="test1" multiple="multiple" id="test1">
   <option value="1">item1</option>
   <option value="2">item2</option>
   <option value="3">item3</option>
   <option value="4">item4</option>
   <option value="5">item5</option>
</select>
</form>

PHP部分

<?php
$var1 = array();
$joinedString = array();
$var1 = $_POST['test1'];
$joinedString = implode(',', $var1);
?>

但是回显部分不起作用,它给了我错误,并且只显示第一个数组值。

<?php
$echo $joinedString[0];
$echo $joinedString[1];
$echo $joinedString[2];
$echo $joinedString[3];
$echo $joinedString[4];
?>

谢谢大家,我是编程新手。我总是忘记逐行执行的代码,总是与变量和值混淆,是的,在现实世界中,我也是一个笨拙和无足轻重的人。

4

8 回答 8

3
<form method="post" action="sear.php">
 <select name="test1[]" multiple="multiple" id="test1">
   <option value="1">item1</option>
   <option value="2">item2</option>
   <option value="3">item3</option>
   <option value="4">item4</option>
   <option value="5">item5</option>
   <input type="submit" name="submit" value="submit" />
  </select>
</form>
<?php
   $var1 = array();
   $joinedString = array();
   $var1 = $_POST['test1'];
   $joinedString = implode(',', $var1);
   echo $joinedString;
?>

获得帖子值后,它肯定会起作用....尝试一下...

于 2012-09-05T05:39:01.313 回答
2

改变

<select name="test1" multiple="multiple" id="test1">

<select name="test1[]" multiple="multiple" id="test1">

它已经是一个数组

$var1 = $_POST['test1'];
    $imploded = implode(",", $var1);
    echo $imploded;
    //FOR GETTING INDIVIDUAL ITEMS FROM array
    echo $var1[0];
于 2012-09-05T05:41:18.647 回答
2

采用

<select name="test1[]" multiple="multiple" id="test1">

在 .php 文件中。

$var1 = isset($_POST['test1']) ? $_POST['test1']: 0 ;
print_r($var1); //gives array
foreach($var1 as $var) {
    echo $var;
}
于 2012-09-05T05:45:24.797 回答
0

Implode 没有得到任何数组。它适用于数组。

于 2012-09-05T05:36:44.773 回答
0

您传递的是字符串而不是数组。implode()将数组转换为字符串。

于 2012-09-05T05:37:36.710 回答
0

在您的脚本中, $_POST['test1'] 将仅包含选择框的提交值,而不是整个值集。由于 $var1 仅包含一个字符串,因此 implode() 将出错。

于 2012-09-05T05:39:08.500 回答
0

看看这个:

http://www.tizag.com/phpT/php-string-implode.php

$与变量一起使用。

于 2012-09-05T05:39:38.487 回答
0

您正在尝试使用 (,) 对数组进行内,但后数组值不包含用逗号分隔的值,因此您必须使用foreach

<?php
$var1 = array();
$joinedString = array();
$var1 = $_POST['test1'];
foreach($var1 as $values)
echo $values."<br/>";
?>

<form method="post">
<select name="test1[]" multiple="multiple" id="test1">
   <option value="1">item1</option>
   <option value="2">item2</option>
   <option value="3">item3</option>
   <option value="4">item4</option>
   <option value="5">item5</option>
</select>
<input type="submit" >
</form>
于 2012-09-05T05:47:06.587 回答