I have an html form which which has multiple textarea and its values are coming from database.
while($row=mysql_fetch_array($record)){
echo "<tr class='item-row'>";
echo "<td>" .$startSrno. "</td>";
echo "<td class='item-name'> <div class='delete-wpr'><textarea name='productName[]'>".$row['name']."</textarea></div></td>";
echo "<td>".$row['pkgsize']."</td>";
echo "<td><textarea class='savings' name='saving[]'>".$row['savings']."</textarea></td>";
echo "<td><textarea class='mrp' name='mrp[]'>".$row['MRP']."</textarea></td>";
echo "<td><textarea class='qty' name='qty[]'>1</textarea></td>";
echo "<td><textarea class='cost' name='saleprice[]'>".$row['saleprice']."</textarea></td>";
echo "<td><textarea class='price' name='total[]'>".$row['saleprice'] * '1'."</textarea></td>";
echo '<input type="hidden" name="productId[]" value="'.$row['id']. '">';
echo '<input type="hidden" name="pkgsize[]" value="'.$row['pkgsize']. '">';
echo "</tr>";
$startSrno++;
}
now when i submit this form i get these arrays of form which has multiple values but they are in column format where as i need it in row form:
$id = implode(',',$_POST['productId']);<br/>
$name = implode(',',$_POST['productName']);
$saving = implode(',',$_POST['saving']);
$qty = implode(',',$_POST['qty']);
$pkgsize = implode(',',$_POST['pkgsize']);
$mrp = implode(',',$_POST['mrp']);
$saleprice = implode(',',$_POST['saleprice']);
$total = implode(',',$_POST['total']);
Boost,Olay,Bournvita (Name)
45,35,20 (Savings)
2,3,5 (qty)
500gm,20ml,1kg(pkgsize)
120,70,320(mrp)
75,35,300(saleprice)
150,105,1500(total)
(Boost,45,2,500gm,120,75,150),(Olay,35,3,20ml,120,35,105),(Bournvita,20,5,1kg,300,75,1500)
Thanks in advance
Sounds like you need a for-loop for that. Provided you already validated that data and made sure no empty 'cell' was passed in.
$products = '(' . $name[0] . ',' . $saving[0] . ',' . $qty[0] . ',' . $pkgsize[0] . ',' . $mrp[0] . ',' . $saleprice[0] . ',' . $total[0] . ')';
for($i = 1; $i < count($id); $i++)
$products = ',(' . $name[i] . ',' . $saving[i] . ',' . $qty[i] . ',' . $pkgsize[i] . ',' . $mrp[i] . ',' . $saleprice[i] . ',' . $total[i] . ')';
My PHP skills may not be up to date and it probably could be done better, but I'd say this should work.
$b = '';
for ($i=0; $i<count($_POST['productId']); $i++) {
$a = array(
//$_POST['productId'][$i],
$_POST['productName'][$i],
$_POST['saving'][$i],
$_POST['qty'][$i],
$_POST['pkgsize'][$i],
$_POST['mrp'][$i],
$_POST['saleprice'][$i],
$_POST['total'][$i]
);
if ($b != '') $b .= ',';
$b = '('.implode(',',$a).')';
}
echo $b;
$oddArray = array();
$evenArray = array();
$insertValues = '';
for ($i=0; $i<count($_POST['productId']); $i++) {
if ($i % 2 == 0) {
//echo $i."<br/>";
$insertValues .= '(';
$evenArray = array(
//$_POST['productId'][$i],
'\''.$_POST['productName'][$i].'\'',
$_POST['saving'][$i],
$_POST['qty'][$i],
'\''.$_POST['pkgsize'][$i].'\'',
$_POST['mrp'][$i],
$_POST['saleprice'][$i],
$_POST['total'][$i]
);
$insertValues .= implode(',',$evenArray);
$insertValues .= '),';
}else{
//echo $i."<br/>";
$insertValues .= '(';
$oddArray = array(
//$_POST['productId'][$i],
'\''.$_POST['productName'][$i].'\'',
$_POST['saving'][$i],
$_POST['qty'][$i],
'\''.$_POST['pkgsize'][$i].'\'',
$_POST['mrp'][$i],
$_POST['saleprice'][$i],
$_POST['total'][$i]
);
$insertValues .= implode(',',$oddArray);
$insertValues .= '),';
}
}
$insertValuesTrim = rtrim($insertValues,',');