这是问题。我有一个名为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来完成,那么我宁愿那样做。

最佳答案

尝试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"' : '').' />';


等等。

我希望这个帮助

08-25 13:08
查看更多