douye7033 2014-03-25 10:02
浏览 44
已采纳

记住从db填充的用户选中框

I have a form with several check boxes populated from a db

CODE:

// populating Checkboxes from db
    echo '<div>
        <label for="'.$n['eName'].'">'.$n['eName'].'</label>
        <input type="checkbox" name="skills[]" id="'.$n['eName'].'" value="'.$n['id'].'" '.(isset($_POST[$n['eName']]) ? 'checked="checked"' : '') .' />
    </div>';

The problem is when the user select some of these check-boxes and submit the form and get error, the form can not remember his choices and he has to re-select them again.

what can I do to go over this issue?

Thanks in advance

  • 写回答

1条回答 默认 最新

  • dsgdhtr_43654 2014-03-25 10:08
    关注

    This is not correct:

    isset($_POST[$n['eName']]
    

    You should look in the $_POST['skills'] array.

    According to your implementation of $n['eName'] the following code might work:

    echo '<div>
        <label for="'.$n['eName'].'">'.$n['eName'].'</label>
        <input type="checkbox" name="skills['.$n['eName'].']" id="'.$n['eName'].'" value="'.$n['id'].'" '.(isset($_POST['skills'][$n['eName']]) ? 'checked="checked"' : '') .' />
    </div>';
    

    ps: Be warned that any quotation in $n['eName'] would most likely break your code - one should take measures for these cases.

    Edit:

    <form method=post>
    <?php
    
    $n['id']='someid';
    $n['eName'] = 'test';
    
    echo '<div>
        <label for="'.$n['eName'].'">'.$n['eName'].'</label>
        <input type="checkbox" name="skills['.$n['eName'].']" id="'.$n['eName'].'" value="'.$n['id'].'" '.(isset($_POST['skills'][$n['eName']]) ? 'checked="checked"' : '') .' />
    </div>';
    ?>
    <input type=submit >
    </form>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题