Php 从数组中选择多选窗体

Php 从数组中选择多选窗体,php,html,mysql,forms,Php,Html,Mysql,Forms,问题就在这里。我有一个名为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=

问题就在这里。我有一个名为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>
然后将其作为逗号分隔的字符串插入数据库

我想做的是,当用户返回表单并“预选”复选框时,获取此字符串并将值应用于原始表单,指示用户以前已经选择了这些值,如果他们选择编辑表单中的任何其他信息,则将这些值保留在数据库中

我假设这需要用javascript来完成,但如果有一种方法可以用PHP来完成,我宁愿这样做


<?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>
使用的付款方式:
value=“Check”>我可以用支票支付。
value=“Paypal”>我可以用Paypal支付。

使用的付款方式:
value=“Check”>我可以用支票支付。
value=“Paypal”>我可以用Paypal支付。
试试explode()。如下

$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"' : '').' />';
echo'
'';
等等

我希望这有助于

尝试explode()。如下

$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"' : '').' />';
echo'
'';
等等


我希望这有助于

那太完美了。我知道有一种方法可以完成它,但我就是记不起来了。谢谢,太好了。我知道有一种方法可以完成它,但我就是记不起来了。谢谢,谢谢。我对你的答案投了更高的票,因为你基本上是对的,但是穆罕默德的答案第一次奏效了。谢谢。我对你的答案投了更高的票,因为你基本上是对的,但穆罕默德的答案第一次奏效了。