Uiteraard zou het kunnen, maar wat is de reden dat je dit format wil hebben?
Link gekopieerd
Dan kan ik het in de database wegschrijven: INSERT.....
Kun je me SVP helpen, ik heb echt zoveel geprobeerd.
Link gekopieerd
Zoiets dan?
<?php
$output = '';
foreach ($_POST['category_id'] as $k => $v) {
$output .= '(' . $v . ',' . $_POST['stock_id'][$k] . ',' . $_POST['del_times_id'][$k] . '),';
}
$output = substr($output, 0, -1);
?>
Voor de veiligheid zou ik wel even of per stuk controleren of de waarden wel getallen zijn, of quotes om de getallen zetten en escaping toepassen. Whatever floats your boat.
Link gekopieerd
GM Ben,
Ik ben je zeer dankbaar!
Kijk is hoe mooi jouw code in het script staat:
function updateDTC($p){
$sql_del = "DELETE FROM delivery_times_category ";
$this->db->query($sql_del);
$ins_sql = "INSERT INTO delivery_times_category (del_times_id, category_id, stock_id) VALUES ";
$output = '';
foreach ($p['del_times_id'] as $k => $v) {
$output .= '(' . $this->db->escape($v) . ',' . $this->db->escape($p['category_id'][$k]) . ',' . $this->db->escape($p['stock_id'][$k]) . '),';
}
$output = substr($output, 0, -1);
$ins_sql .= $output;
$this->db->query($ins_sql);
}
Link gekopieerd
Je moet alleen nog wel even wat extra quotes toevoegen zodat het resultaat vormt als ('1', '2', '3') omdat anders escaping niets uithaalt.
Link gekopieerd
Als je je formuliervelden zo opbouwt dan staat alles direct zoals je het hebben wilt ;-)
<input type="text" name="items[1][category_id]" value="1" />
<input type="text" name="items[1][stock_id]" value="0" />
<input type="text" name="items[1][del_times_id]" value="1" />
<input type="text" name="items[2][category_id]" value="1" />
<input type="text" name="items[2][stock_id]" value="1" />
<input type="text" name="items[2][del_times_id]" value="2" />
<pre>
<?php
print_r($_POST['items']);
?>
</pre>
<?php
foreach($_POST['items'] as $item)
{
echo $item['category_id'] . '-' .
$item['stock_id'] . '-' .
$item['del_times_id'] . '<br>';
}
[/code]
Link gekopieerd
Frank als ik een nieuwe category aanmaak, zou het dan betekenen, dat ik dan hardcoded het formulier moet aanpassen ? In het voorbeeld zijn het al 14 verschillende combi's.....
[size=xsmall]
Toevoeging op 25/06/2017 17:33:36: [/size]
Het formulier ziet er nu zo uit:
<tr>
<td><?php echo $value->category; ?></td>
<input type="hidden" name="category_id[]" value="<?php echo $value->category_id; ?>">
<?php $stock = ($value->stock_id == 0)?'<i class="fa fa-times"></i> no stock':'<i class="fa fa-check"></i> stock'; ?>
<td><?php echo $stock ?></td>
<input type="hidden" name="stock_id[]" value="<?php echo $value->stock_id; ?>">
<td>
<select name="del_times_id[]" class="form-control">
<option value="">-- select a category --</option>
<?php
foreach ($rules as $rule) :
$select = ($rule->del_times_id == $value->del_times_id) ? 'selected="selected"' : '';
echo '<option value="' . $rule->del_times_id . '" ' . $select . '>' . $rule->rule . '</option>';
endforeach;
?>
</select>
</td>
</tr>
Link gekopieerd
Nee je kunt alles laten zoals het is bij het genereren van je formulier behalve de name attributen. Die gebruik je zoals ik aangaf. Dus in plaats van
name="category_id[]"
doe je iets als
name="items[<?php echo $i; ?>][category_id]"
$i is een tellertje van 1 tot ..
Link gekopieerd