MySQL正在删除html表/ Code Igniter的最后一行

时间:2016-06-06 03:29:33

标签: php html mysql codeigniter

这是我的控制器,用于将行发送到模型:

function excluir(){
    $codcliente = $this->input->post('codcliente');
    $this->load->model("Cliente_class");
    $this->Cliente_class->excluirCliente($codcliente);
    redirect('cliente/busca');
}

我的模特:

function excluirCliente($codcliente){
    $this->db->delete('cliente', array('codcliente' => $codcliente));
}

我的表(视图):

    <form action="#" method="POST" id="form">
    <div style="float: left;">
        <input type="button" onclick="cadastro();" value="Novo cliente" name="botao" class="btn btn-primary">
    </div>
    <div class="dataTable_wrapper">
    <table class="table table-striped table-bordered table-hover" id="dataTables-example">
    <thead>
        <tr>
        <th>Código</th>
        <th>Nome</th>
        <th>Cidade</th>
        <th>Telefone</th>
        <th> </th>
        </tr>
    <tbody>
    <?php
        foreach ($records as $row){ ?>
        <tr>
        <td><input name="codcliente" id="codcliente" value="<?php echo $row->codcliente ?>"></td>
        <td><?php echo $row->nome ?></td>
        <td><?php echo $row->cidade ?></td>
        <td><?php echo ($row->telefone == null) ? "-" : $row->telefone ?></td>
        <td><center><input type="button" onclick="excluir();" value="Delete"></td>
        </tr>
    <?php } ?>
    </tbody>
    </form>
    </thead>
    </table>

和我的JS:

function excluir(){
document.forms['form'].action = "<?php base_url();?>excluir";
document.forms['form'].submit();

}

它的工作正常,但代码正在删除与html上的表相关的最后一行。我也使用了这个订单,看看是什么东西被删除了,它的工作原理相同......

我不知道什么是错的

1 个答案:

答案 0 :(得分:1)

您的问题是您为所有行使用相同的表单名称name="codcliente",然后在删除时提交整个表单。服务器看到codcliente的最后一个值,它将是你的最后一行,因此删除它。

要修复,我建议您为所有行字段的每一行使用唯一的表单名称。例如。而不是name="codcliente"使用name="codcliente_<?php echo $row->id ?>&#34;。然后当你发布到服务器删除时,在删除按钮上使用data-name=<?php echo $row->codcliente ?>,在onClick处理程序中使用$(this).data(&#39; name&#39;)来获取唯一的名称字段并将其发布到服务器。我建议你使用id而不是名字。