您好我正在寻找有关如何最好地处理数据库表提交的建议。
到目前为止,我已经生成了重复的行数据,如下所示:
<table border=1>
<tr>
<th>Phone Number</th>
<th>Prefix CallerID with</th>
<th>Seconds to ring before<br/>reaching voicemail</th>
<th>Voice mailbox<br/>extension number</th>
<th>Notes</th>
</tr>
<?php
$id = 1;
foreach ( $line_detail as $line ){
echo '<tr>';
echo '<td>'.form::input($id.'_did', $line->did).'</td>';
echo '<td>'.form::input($id.'_cid_prefix', $line->cid_prefix).'</td>';
echo '<td>'.form::input(array($id.'_dial_timeput', 'size'=>15, 'maxlength'=>3), $line->dial_timeout).'</td>';
echo '<td>'.form::dropdown($id.'_extension', $phones, $line->voicemail).'</td>';
echo '<td>'.form::input($id.'_notes', $line->notes).'</td>';
echo "</tr>";
$id++;
}
?>
</table>
当我提交此内容时,我会重复这样的数据:
(array) Array
(
[1_did] => 64123456789
[1_cid_prefix] => DDI-
[1_extension] => 800
[1_notes] =>
[2_did] => 645678903
[2_cid_prefix] => TEST-
[2_extension] => 820
[2_notes] =>
[submit] => Save
)
好的,现在我可以通过id对它们进行分组并向数据库提交更新。 但是,我想知道是否有更好的方法。
答案 0 :(得分:3)
PHP的输入名称数组符号是可行的方法。
<input name="data[<?php echo $id;?>]['did'] />
<input name="data[<?php echo $id;?>]['cid_prefix'] />
<input name="data[<?php echo $id;?>]['extension']"/>
...
一旦数据发布,你最终会得到一个漂亮的二维关联数组。
答案 1 :(得分:0)
你可以建立这样的形式:
foreach ( $line_detail as $line ){
echo '<tr>';
echo '<td>'.form::input('did['.$id.']', $line->did).'</td>';
echo '<td>'.form::input('cid_prefix['.$id.']', $line->cid_prefix).'</td>';
echo '<td>'.form::input(array('dial_timeput['.$id.']', 'size'=>15, 'maxlength'=>3), $line->dial_timeout).'</td>';
echo '<td>'.form::dropdown('extension['.$id.']', $phones, $line->voicemail).'</td>';
echo '<td>'.form::input('notes['.$id.']', $line->notes).'</td>';
echo "</tr>";
$id++;
}
它将为您提供以下数组:
(array) Array
(
[did] => array(
[1] => 64123456789,
[2] => 645678903,
)
[cid_prefix] => array(
[1] => 'DDI-',
[2] => 'TEST-',
)
[extension] => array(
[1] => 800,
[2] => 820,
)
[notes] => array(
[1] => '',
[2] => '',
)
[submit] => Save
)
它可能更方便