[英]passing multiple option values in php
I'm trying to assign multiple value to option in php so i can extract them later and separately and insert to mysql 我正在尝试为php中的选项分配多个值,以便以后可以分别提取它们并插入到mysql中。
where is how i'm trying to assign. 我要如何分配。
<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>
and this is how i'm trying to extract them 这就是我试图提取它们的方式
if(isset($_POST['val']))
{
list($category_id, $trade_id) = explode("-", $_POST['val'], 2);
$aVals = $_POST['val'];
$category_id = 0;
$category_name = $aVals['category_name'];
$parent = $aVals['parent'];
$trade_id =$aVals['trade_id'];
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');
}
I dont know how i can extract them assign them. 我不知道我如何提取他们分配给他们。 Please help. 请帮忙。
Here is the fullform 这是完整版
<?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>
From your form, you can assign your PHP variables like so: 您可以从表单中分配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'];
}
You may want to tighten up your MySQL query though, it seems it's open to security flaws. 您可能想收紧MySQL查询,但似乎存在安全漏洞。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.