在php中传递多个选项值

在php中传递多个选项值,php,Php,我试图在php中为选项分配多个值,以便以后可以分别提取它们并插入mysql 我是如何分配的 <select name="val[parent]"> <?php if($cnt > 0){ while($parent = mysqli_fetch_assoc($sql)) { ?> <option value="<?php echo $parent['category_id']. "-" . $parent['trade_id'];?> ">

我试图在php中为选项分配多个值,以便以后可以分别提取它们并插入mysql

我是如何分配的

<select name="val[parent]">
<?php
if($cnt > 0){
while($parent = mysqli_fetch_assoc($sql))
{
?>
<option value="<?php echo $parent['category_id']. "-" . $parent['trade_id'];?> "> <?php echo $parent['trade_name']; ?> </option>
<?php }} ?>
</select>
我不知道如何提取它们并分配它们。请帮忙

这是完整的表格

<?php
require_once "connection.php";
$bEdit = false;

if(isset($_POST['val']))
{
    $Value = explode("-",$_POST['val']['parent']);

    $aVals = $_POST['val'];
    $category_id = 0;
    $category_name = $aVals['category_name'];
    $parent = $aVals['parent'];
  $trade_id = $Value[1];

    if(isset($aVals['category_id']))
    {
        $category_id = $aVals['category_id'];
    }

    $sql = "INSERT INTO category SET category_name = '$category_name', parent = $parent, vcat_id = '$trade_id', status = 1";
    $sql = mysqli_query($databaseLink,$sql);
    header('location:category.php');
}

?>

<form role="form" method="post">
<table cellpadding="5" cellspacing="5">
<tr><td>
<h2><?php echo $bEdit ? 'Edit' : 'Add '; ?> Category</h2>
<?php if($bEdit){ ?>
<input type="hidden" name="val[category_id]" value="<?php echo $aRow['category_id']; ?>">
<?php } ?>
</td></tr>
<tr><td>
Select Parent : <br />
<?php
$sql = mysqli_query($databaseLink,"SELECT * FROM `category` WHERE 1 ");
$cnt = mysqli_num_rows($sql);
?>
<select name="val[parent]">
<?php
if($cnt > 0){
while($parent = mysqli_fetch_assoc($sql))
{
?>
<option value="<?php echo $parent['category_id']. "-" . $parent['trade_id'];?> "> <?php echo $parent['trade_name']; ?> </option>
<?php }} ?>
</select>
</td></tr>
<tr><td>
Name : <br />
<input class="form-control" placeholder="Name" name="val[category_name]" type="text" autofocus required value="<?php echo $bEdit ? $aRow['name'] : ''; ?>">
</td></tr>
<tr><td><br />
<button type="submit" class="btn btn-lg btn-success btn-block">Save</button>
</td></tr>
</table>
</form>

从表单中,可以按如下方式分配PHP变量:

if(isset($_POST['val']['parent'])){
    $parent = $_POST['val']['parent'];
    # split the value by "-", and assign to category_id & trade_id
    list($category_id, $trade_id) = explode("-", $_POST['val']['parent'], 2);
}
if(isset($_POST['val']['category_name'])){
    # set the category_name variable
    $category_name = $_POST['val']['category_name'];
}
if(isset($_POST['val']['category_id'])){
    # override category_id variable
    $category_id = $_POST['val']['category_id'];
}

不过,您可能希望收紧MySQL查询,因为它似乎存在安全漏洞。

在您的UI(用户界面)中,您需要向选择框添加
多个
,如果你想让用户选择多个选项。大概你只需要分解
$Value=explode(“-”,$\u POST['val']['parent'])
,然后分配
$CategoryID=$Value[0]
$TradeID=$Value[1]
?让我试试看不起作用。试试
列表($category\u id,$trade\u id)=explode(“-”,$\u POST['val']['parent'],2);
在没有看到完整表单的情况下进行故障排除有点困难。请尝试
print\r($\u POST)
,查看您实际发布到PHP的内容。
if(isset($_POST['val']['parent'])){
    $parent = $_POST['val']['parent'];
    # split the value by "-", and assign to category_id & trade_id
    list($category_id, $trade_id) = explode("-", $_POST['val']['parent'], 2);
}
if(isset($_POST['val']['category_name'])){
    # set the category_name variable
    $category_name = $_POST['val']['category_name'];
}
if(isset($_POST['val']['category_id'])){
    # override category_id variable
    $category_id = $_POST['val']['category_id'];
}