This is my first time using multiple select options and add more field function in form. I have this form where I can enter multiple serialNumber and also add multiple accessories and quantity accordingly. But the only first selected serialNumber and accessories (and quantity) saved in my database.
So here is my HTML Form:
<form id="form1" name="form1" method="post" action="requisitionForm_process.php" onsubmit="return validateForm()" >
<div class="form-group">
<label for="DONO">DO. Number: </label>
<input class="form-control" id="DONO" name="DONO" placeholder="Place DO. Number Here" type="text"/>
</div>
<div class="form-group">
<label for="requestby">Request By: </label>
<select class="form-control" id="empCode" name="empCode">
<?php while ($row = mysqli_fetch_array($resultR)):;?>
<option value = <?php echo $row ['empCode']; ?>><?php echo $row ['empCode']; echo ":"; echo $row ['empName'];?></option>
<?php endwhile;
?>
</select>
</div>
<div class="form-group">
<label for="requestby">Customer: </label>
<select class="form-control" id="customerCode" name="customerCode">
<?php while ($row = mysqli_fetch_array($resultC)):;?>
<option value = <?php echo $row ['customerCode']; ?>><?php echo $row ['customerCode']; echo ":"; echo $row ['customerName'];?></option>
<?php endwhile;
?>
</select>
</div>
<div class="form-group"> <!-- Date input -->
<label class="control-label" for="dateOUT">Date:</label>
<input class="form-control" id="dateOUT" name="dateOUT" placeholder="DD/MM/YYY" type="text"/>
</div>
<div class="form-group">
<label for="categoryCode">Category: </label>
<select class="form-control" id="categoryCode" name="categoryCode">
<option value="new"> New Installation</option>
<option value="re">Re-installation</option>
</select>
</div>
<div class="form-group">
<label for="categoryCode">Product: </label>
<select class="form-control" id="productCode" name="productCode">
<?php while ($row = mysqli_fetch_array($result)):;?>
<option value = <?php echo $row ['productCode']; ?>><?php echo $row ['productCode']; echo ":"; echo $row ['productName'];?></option>
<?php endwhile;
?>
</select>
</div>
<div class="form-group">
<label for="serialNumber">Serial Number:</label><br>
<select id="serialNumber" name="serialNumber[]" multiple class="form-control" >
<?php while ($row = mysqli_fetch_array($resultSe)):;?>
<option value = <?php echo $row ['serialNumber']; ?>><?php echo $row ['serialNumber'];?></option>
<?php endwhile;?>
</select>
</div>
<table class="table table-bordered" id="item_table">
<tr>
<th>Select Accessories</th>
<th>Enter Quantity</th>
<th><button type="button" name="add" class="btn btn-success btn-sm add"><span class="glyphicon glyphicon-plus"></span></button></th>
</tr>
</table>
<div class="form-group">
<input type="button" class="btn" id="checkBtn" name="return" value="Back" onClick="javascript: window.history.back(-1)";>
<input class="btn btn-primary" type="reset" value="Reset">
<input align="right" type="submit" class="btn btn-info" value="Submit Button">
</div>
</div>
</form>
And this is my PHP process:
<?php
if(isset($_POST["serialNumber"]))
{
$serialNumber = '';
foreach($_POST["serialNumber"] as $row)
{
$serialNumber .= $row . ', ';
}
$serialNumber = substr($serialNumber, 0, -2);
if(isset($_POST["categoryCode"]))
{
$connect = new PDO("mysql:host=localhost;dbname=ims", "root", "");
$DONO = $_POST["DONO"];
$empCode = $_POST["empCode"];
$customerCode = $_POST["customerCode"];
$categoryCode = $_POST["categoryCode"];
$productCode = $_POST["productCode"];
$dateOUT = date('Y-m-d', strtotime($_POST['dateOUT']));
for($count = 0; $count < count($_POST["accID"]); $count++)
{
$query = "INSERT INTO requisition (DONO, empCode, customerCode, dateOUT, categoryCode, productCode, serialNumber, quantityAcc, accID) VALUES (:DONO, :empCode, :customerCode, :dateOUT, :categoryCode, :productCode, :serialNumber, :quantityAcc, :accID) ";
$statement = $connect->prepare($query);
$statement->execute(
array(
':DONO' => $DONO,
':empCode' => $empCode,
':customerCode' => $customerCode,
':dateOUT' => $dateOUT,
':categoryCode' => $categoryCode,
':productCode' => $productCode,
':serialNumber' => $serialNumber,
':quantityAcc' => $_POST["quantityAcc"][$count],
':accID' => $_POST["accID"][$count]
)
);
}
$result = $statement->fetchAll();
if(isset($result))
{
echo 'ok';
}
}
}
?>