2017-08-16 56 views
0

我想在php多個值分配給選項,所以我可以在以後並單獨提取出來,並插入到mysql傳遞多個選項值在PHP

這裏是如何我試圖分配。

<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> 

,這是如何我試圖提取他們

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'); 
} 

我不知道我可以提取它們爲它們分配。請幫忙。

這裏是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> 
+0

在你的UI(用戶界面)中,你需要在你的選擇框中加入'multiple'。如果您希望用戶選擇多個選項,請選擇<多個>'。 – Fredster

+0

假設你只需要爆炸'$ Value = explode(「 - 」,$ _ POST ['val'] ['parent'])',然後分配'$ CategoryID = $ Value [0]'''TradeID = $ Value [1]'? – JustBaron

+0

讓我試試 –

回答

1

從你的表格,你可以指定你的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查詢,似乎它的開放到安全漏洞。