0

これが問題です。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で行う方法がある場合は、その方法で行う方がよいでしょう。

4

2 に答える 2

2

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

等々。

私はこの助けを願っています

于 2012-11-11T23:05:17.590 に答える
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>
于 2012-11-11T23:03:04.557 に答える