2012-11-11 4 views
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']); 

으로 전환.

내가 뭘하고 싶은지,이 문자열을 가져 와서 사용자가 양식으로 돌아가 이전에 값을 선택했다는 것을 나타내는 확인란을 '미리 선택'하면 값을 원래 양식에 적용합니다. 양식의 다른 정보를 편집하도록 선택한 경우 해당 값을 데이터베이스에 보관합니다.

나는 이것이 자바 스크립트로 할 필요가 있다고 가정하지만, PHP로 할 수있는 방법이 있다면 오히려 그렇게 할 것입니다.

답변

2

explode()를 시도해보십시오. 그래서

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

및 아래로 checkboxs 각 조건을

$valuesArr = explode(',', $dbresult); 

아래에 당신의 HTML 코드처럼.

이 도움을 받으십시오.

+0

완벽했습니다. 나는 그것을 끝내는 방법이 있다는 것을 알았지 만 나는 in_array를 기억할 수 없었다. 고맙습니다. – Budove

+0

당신은 환영합니다 ... –

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> 
+0

감사합니다. 당신이 기본적으로 맞았 기 때문에 나는 대답했다.하지만 모하메드의 대답은 처음 일했다. – Budove

관련 문제