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

问题描述 投票:2回答:1

我正在处理一个网络表单。

表单正在从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

php html mysql
1个回答
1
投票

在隐藏元素中添加带有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附加到输入字段的name字段,则可以循环访问服务器端的变量并获取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的未选中值的点。

© www.soinside.com 2019 - 2024. All rights reserved.