php - 提交带有复选框的表单后更新 MySQL 表

标签 php html mysql

我正在处理网络表单。

表单正在从 MySQL 数据库加载记录。

这是表格:

<div class="panel-body">
    <form id="signupform" class="form-horizontal" role="form" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST" autocomplete="off">
        <div id="signupalert" style="display:none" class="alert alert-danger">
            <p>Error:</p>   <span></span>
        </div>
        <div class="form-group">
            <label for="nombre" class="col-md-3 control-label">Marcas asociadas:</label>
            <div class="col-md-9">
                <?php 
                    global $mysqli;
                    $loop = m ysqli_query($mysqli, "SELECT * FROM tb_marcas_vendedor  LEFT JOIN tb_marcas  ON                                                       tb_marcas_vendedor.marca_vendedor = tb_marcas.id_marca
                                                    WHERE tb_marcas_vendedor.vendedor_marca =  '".$_SESSION[ 'id_usuario']. "' 
                                                    ORDER BY id_marca" ) or die (mysqli_error($mysqli)); 
                                                    while ($row=m ysqli_fetch_array($loop)) 
                                                    { 
                                                        if ($row[ 'seleccionado']==1 )
                                                        { 
                                                            echo "<label><input type='checkbox' value=".$row[ 'seleccionado']. " name='sport' checked> ".$row[ 'nombre_marca']. "</label>"; 
                                                        }
                                                        else
                                                        { 
                                                            echo "<label><input type='checkbox' value=".$row[ 'seleccionado']. " name='sport' > ".$row[ 'nombre_marca']. "</label>"; 
                                                        } 
                                                    } 
                ?>
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-3 col-md-9">
                <button id="btn-signup" type="submit" class="btn btn-info"><i class="icon-hand-right"></i>Actualizar</button>
            </div>
        </div>
    </form>
    <?php echo resultBlock($errors); ?>
</div>

这是输出:

enter image description here enter image description here

我需要更新mysql数据。如果用户选中一个框,则值为 $row['seleccionado'] 应该是1,如果不勾选,应该是0。 如何在提交表单后获取所选行的 ID 并更新表格?

编辑

这是表 tb_marcas_vendedor 结构:

enter image description here

最佳答案

在隐藏元素中添加一个带有 id 的隐藏输入,以及一个使用原生 JavaScript 更新隐藏元素的普通复选框:

<input type='hidden' name='" . $row['id_marca_vendedor'] . "' value='" . $row[ 'seleccionado'] . "'><input type="checkbox" onclick='this.previousSibling.value=1-this.previousSibling.value'>

确保这些元素之间没有空格。这将确保即使是未检查的值也会被考虑在内。

如果将 id_marca_vendedor 附加到输入字段的名称字段,则可以在服务器端循环遍历变量并在 POST 部分获取结果/id:

// Loop over each item in the form.
foreach($_POST as $name => $value) {

    // Get the id and value
    $id = $name;
    $selection = $_POST[$name];

    // Database query goes here

}

Source

编辑:更新为包括@jeff 的未检查值点。

关于php - 提交带有复选框的表单后更新 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49081398/

相关文章:

php - 请求-> 除了在laravel 5 中给我一个数组而不是一个请求对象

html - 似乎无法将图像拉伸(stretch)到 100% 的网页

html - IE7里不在同一行

php - mysql中按一列分组

MySQL inner join help - 想要包含没有匹配的行

javascript - 分段 HTML 输出不起作用

php - preg_match 匹配模式,其中包含星号 (*)

php - CakePHP:HABTM 多次

javascript - JQuery:仅按类从另一个 <div> 获取文本

python - 优化数据上传(MySQL、Python)