这是问题所在。我有一个名为pymnt_meth_pref的数据库列,其中包含从多选表单中选择的逗号分隔的付款方式字符串。
<td>Payment Methods Used:<br />
<input type="checkbox" name="pyment_meth_pref[]" value="Cash">I can pay with cash.<br />
<input type="checkbox" name="pyment_meth_pref[]" value="Check">I can pay by check.<br />
<input type="checkbox" name="pyment_meth_pref[]" value="Credit Card">I can pay by credit card.<br />
<input type="checkbox" name="pyment_meth_pref[]" value="Paypal">I can pay with Paypal.<br /> </td>
此数组将发布到变量并转换为逗号分隔的字符串
if (isset($_POST['pyment_meth_pref']))
$pymntmethpref = implode(", ", $_POST['pyment_meth_pref']);
if (isset($_POST['pyment_meth_acc']))
$pymntmethacc = implode(", ", $_POST['pyment_meth_acc']);
然后将其作为逗号分隔的字符串插入数据库。
我想做的是,当用户返回到表单并“预先选择”复选框时,接受此字符串并将值应用于原始表单,指示用户之前已选择了这些值,如果他们选择编辑表单中的任何其他信息,请将这些值保留在数据库中。
我假设这需要用javascript完成,但如果有办法用PHP做,我宁愿那样做。
答案 0 :(得分:2)
尝试爆炸()。如下
$valuesArr = explode(',', $dbresult);
并在HTML代码中为每个复选框创建条件,如下所示:
echo '<input type="checkbox" name="pyment_meth_pref[]" value="Cash"'.
(in_array('Cash', $valueArr) ? 'checked="checked"' : '').' />
'<input type="checkbox" name="pyment_meth_pref[]" value="Check"'.
(in_array('Check', $valueArr) ? 'checked="checked"' : '').' />';
等等。
我希望这个帮助
答案 1 :(得分:1)
<?php
# Assumed that $pymntmethpref and $pymntmethacc are the DB comma-delimited values
$pm_pref = explode( ', ' , $pymntmethpref );
$pm_acc = explode( ', ' , $pymntmethacc );
$html_sel = 'checked="checked" ';
?>
<td>Payment Methods Used:<br />
<input type="checkbox" name="pyment_meth_pref[]" <?php echo ( in_array( 'Cash' , $pm_pref ) ? $html_sel: '' ); ?>value="Cash">I can pay with cash.<br />
<input type="checkbox" name="pyment_meth_pref[]" <?php echo ( in_array( 'Check' , $pm_pref ) ? $html_sel: '' ); ?>value="Check">I can pay by check.<br />
<input type="checkbox" name="pyment_meth_pref[]" <?php echo ( in_array( 'Credit Card' , $pm_pref ) ? $html_sel: '' ); ?>value="Credit Card">I can pay by credit card.<br />
<input type="checkbox" name="pyment_meth_pref[]" <?php echo ( in_array( 'Paypal' , $pm_pref ) ? $html_sel: '' ); ?>value="Paypal">I can pay with Paypal.<br />
</td>