我试图传递一个双值,该值是标记中的数组。如何接收并在另一侧将阵列拆分?这是我的代码:
<?php
print("<select name='dsc[]' multiple='multiple' id='searchable-select' multiple>");
//Create new SQL object
$db = new NSC_SQL($db2config);
$db->from($qadbifld, "dbifld, substr(dbitxt,1,25) as FLDTEXT");
$db->where("upper(dbiatr)='PF' and (DBILIB='".$nscmod72d."' or DBILIB='".$aedata72."') ");
$db->group("dbitxt,dbifld");
$db->order("dbitxt,dbifld");
$db->select();
$results = $db->fetchAssoc();
foreach($results as $row)
{
$fieldName = trim($row['DBIFLD']);
$fieldDesc = trim($row['FLDTEXT']);
print("<option VALUE='$fieldDesc,$fieldName'>$fieldDesc - $fieldName </option>");
}
print("</select>");
?>
这就是我试图在另一边接收它的方式:
<?PHP
$dsc = $_POST['dsc'];
list($fieldDesc, $fieldName) = explode(":", $dsc);
//Put the elements of the array in hidden fields here!
print_r($fieldDesc);
print_r($fieldName);
foreach ($fieldDesc as $key => $value1)
{
echo "<input type=hidden name='dsc[]' value='$value1'>";
}
?>
这是用PHP 编写的
必须采用这种方式,才能将一个选项传递给多选框。感谢你们为我提供的任何帮助。
您似乎将值与,
连接在一起,然后用:
拆分它们。您必须使用相同的分隔符进行连接和拆分。
您有多个选择元素
考虑下面的代码
<?php
if(isset($_POST) && !empty($_POST)){
$dsc = $_POST['dsc'];
foreach ($dsc as $val){
$data = explode(",", $val);
$fieldDesc = $data[0];
$fieldName = $data[1];
echo "<input type=hidden name='dsc[]' value='$fieldDesc'>";
}
}
?>
<form action="" method="post">
<select name='dsc[]' multiple='multiple' id='searchable-select' multiple size="7">
<option value="a,1">a,1</option>
<option value="b,2">b,2</option>
<option value="c,3">c,3</option>
<option value="d,4">d,4</option>
<option value="e,5">e,5</option>
</select>
<input type="submit" value="Submit"></input>
</form>
如果你没有得到,请告诉我