【问题标题】:Dynamicly creating and checking checkboxes in php在php中动态创建和检查复选框
【发布时间】:2011-04-18 08:39:52
【问题描述】:

我正在尝试动态创建链接到 MSSQL 数据库的 php 复选框。这个想法是列出表中的每个项目,并带有一个复选框。从那里,用户将能够选中复选框并单击提交以将数据库的 1 字段中的值更改为“A”。我将数据库链接到 php 并输出复选框和表值,但是我不知道如何从那里动态检查复选框以查看它们是否被选中,或者从那里使用它。

【问题讨论】:

    标签: php sql-server dynamic checkbox


    【解决方案1】:

    这大致是您想要动态创建复选框的方法。当然有更漂亮的方法来实现这一点(即 Smarty 模板)。

    <html>
    ...
    <form method="post" action="submit.php">
    <?php
    // connect to DB here
    
    $result = mysql_query("SELECT l.id, l.name, u.checked FROM List l LEFT JOIN UserAnswers u ON l.id = u.list_id WHERE u.user_id = 5");
    while ($row = mysql_fetch_assoc($result))
    {
        echo '<input type="checkbox" name="cb_' . $row['id'] . '" ' .
            'id="cb_' . $row['id'] . '" ';
        if($row['checked'])
            echo 'checked';
        echo " />\n"
        echo '<label for="cb_' . $row['id'] . '">' . $row['name'] . "</label><br />\n";
    }
    ?>
    
    <input type="submit" value="Submit" />
    </form>
    ...
    </html>
    

    submit.php 有点棘手。当一个复选框被选中时,它将设置一个帖子项目。但是,如果未选中它,您将不会得到任何返回,因此您需要检查您的数据库以获取您期望的所有项目。

    <?php
    
    // connect to DB here
    $result = mysql_query("SELECT id, name, checked FROM things");
    $answers = Array();
    while ($row = mysql_fetch_assoc($result))
    {
        $checked = isset($_POST['cb_' + $row['id']]);
        $answers[$row['id']] = $checked;
    }
    
    // update your database here using $answers
    foreach ($answers as $id => $checked)
    {
        $query = "REPLACE INTO UserAnswers SET user_id=5, list_id=" . $id . ", checked=";
        if($checked)
            $query .= "1";
        else
            $query .= "0";
        mysql_query($query);
    }
    

    这一切都在我的脑海中,有更好的方法来完成大部分工作。这只是一个大方向。我对此不做任何保证。哦,它看起来很容易受到 SQL 注入的影响,请注意这一点。

    【讨论】:

    • 如果你讨厌自己,聪明是伟大的。
    • 伙计,如果您讨厌自己,那么 Web 编程通常是很棒的。我从未见过如此不必要的复杂事情。要编写网站,您至少需要学习 4 种不同的语言。
    • @Chris,好的,我会改写。如果您想同时使用您所知道的语言、语法上仅略有不同的解释版本以及第二语言中原始语言的嵌入版本,那么 Smarty 非常棒。算了。
    • @Kerin 同意了。模板语言应如下所示:en.wikipedia.org/wiki/File:StripHtmlFromText.gif
    • 我喜欢你的短臂,克里斯。稍后在我的船上见我,喝啤酒和下流故事。
    猜你喜欢
    • 2013-03-09
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多