Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得数据表数组的确切位置?_Javascript_Php_Jquery_Datatables - Fatal编程技术网

Javascript 如何获得数据表数组的确切位置?

Javascript 如何获得数据表数组的确切位置?,javascript,php,jquery,datatables,Javascript,Php,Jquery,Datatables,我正在用PHP+JS+SQL做crud(创建、读取、更新、删除)表,我想做下一步: 我有一个包含用户的表(我从数据库中获取此数据): 当我点击“编辑”图标(绿色编辑图标)时,我可以输入表格的值 我不知道如何获得数组的确切位置(为了显示所有这些用户,我使用了一个数组ofc)将其保存在一个变量中,以便以后进行查询以更新信息 你们知道我想说什么吗,伙计们 这是我的密码: <table class='table table-bordered table-hover' class='displa

我正在用PHP+JS+SQL做crud(创建、读取、更新、删除)表,我想做下一步:

我有一个包含用户的表(我从数据库中获取此数据):

当我点击“编辑”图标(绿色编辑图标)时,我可以输入表格的值

我不知道如何获得数组的确切位置(为了显示所有这些用户,我使用了一个数组ofc)将其保存在一个变量中,以便以后进行查询以更新信息

你们知道我想说什么吗,伙计们

这是我的密码:

<table class='table table-bordered table-hover' class='display' style='width:100%; text-align: center;' id='tableTest'>
        <thead>
            <tr>
                <th>Editar</th>
                <th>Nombre</th>
                <th>Apellido 1</th>
                <th>Apellido 2</th>
                <th>Email</th>
                <th>Eliminar</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($res_table as $r){ ?>
                <tr>
                    <td><span class="fas fa-edit editar grow" onclick="updateData(this)"></span></td>
                    <td><?php echo $r->usuario?></td>
                    <td><?php echo $r->apellido1?></td>
                    <td><?php echo $r->apellido2?></td>
                    <td><?php echo $r->email?></td>
                    <td><span class="fas fa-trash-alt grow" onclick="updateData(this)"></span></td>
                </tr>
            <?php } ?>
        </tbody>
    </table>

<div id="contenedorForm">

</div>

编辑
名义
阿佩利多1号
阿佩利多2号
电子邮件
Eliminar
这是我的JS

    // Función para actualizar los datos de la tabla.
    function updateData(nodo){          
        var nodoTd = nodo.parentNode; //Nodo TD
        var nodoTr = nodoTd.parentNode; //Nodo TR
        var nodoContenedorForm = document.getElementById('contenedorForm'); //Nodo DIV
        var nodosEnTr = nodoTr.getElementsByTagName('td');
        var editData = nodosEnTr[0].textContent;
        var usuario = nodosEnTr[1].textContent;
        var apellido1 = nodosEnTr[2].textContent;
        var apellido2 = nodosEnTr[3].textContent;
        var email = nodosEnTr[4].textContent;
        var opciones = nodosEnTr[5].textContent;
        
        var nuevoCodigoHtml =
            '<td><span class="fas fa-edit editar grow" onclick="updateData(this)"></span></td>'+
            '<td><input onblur="getIdInputFromDatabase()" type="text" name="usuario" id="usuario" value="' + usuario + '" size="20"></td>'+
            '<td><input onblur="getIdInputFromDatabase()" type="text" name="apellido1" id="apellido1" value="' + apellido1 + '" size="20"></td>'+
            '<td><input onblur="getIdInputFromDatabase()" type="text" name="apellido2" id="apellido2" value="' + apellido2 + '" size="20"></td>'+
            '<td><input onblur="getIdInputFromDatabase()" type="text" name="email" id="email" value="' + email + '" size="20"></td>' + 
            '<td><span class="fas fa-trash-alt editar grow" onclick="updateData(this)"></span></td>';
        
        nodoTr.innerHTML = nuevoCodigoHtml;

        nodoContenedorForm.innerHTML =
            'Pulse Aceptar para guardar los cambios o cancelar para cancelActionlos' +
            '<form name = "formulario" action="general" method="get" onsubmit="capturarEnvio()" onreset="cancelAction()">' +
            '<input class="boton" type = "submit" value="Aceptar">' +
            '<input class="boton" type="reset" value="Cancelar">';
    }

    function getIdInputFromDatabase(){
        alert("I NEED TO KNOW THE POSITION OF THE ARRAY WHERE I DID ON BLUR");
    }

// Data tables.
        $(function () {
            $('#tableTest').DataTable({
                "language": {"url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/Spanish.json"},  
                "paging": true,
                "lengthChange": false,
                "searching": true,
                "ordering": true,
                "info": false,
                "autoWidth": false,
                "scrollX": false
            });
        });
</script> 
//在塔布拉大道上实施的职能。
函数updateData(nodo){
var nodoTd=nodo.parentNode;//nodo TD
var nodoTr=nodoTd.parentNode;//Nodo TR
var nodocontentedorform=document.getElementById('contendorform');//Nodo DIV
var nodosEnTr=nodoTr.getElementsByTagName('td');
var editData=nodosEnTr[0]。textContent;
var usuario=nodosEnTr[1]。textContent;
var apellido1=nodosEnTr[2]。textContent;
var apellido2=nodosEnTr[3]。textContent;
var email=nodosEnTr[4]。textContent;
var optciones=nodosEnTr[5]。textContent;
var nuevoCodigoHtml=
''+
''+
''+
''+
'' + 
'';
nodoTr.innerHTML=nuevoCodigoHtml;
nodocontentedorform.innerHTML=
"从坎比奥斯到坎比奥斯,从坎比奥斯到坎比奥斯,从坎比奥斯到坎比奥斯,从坎比奥斯到坎比奥斯,从坎比奥斯到坎比奥斯+
'' +
'' +
'';
}
函数getIdInputFromDatabase(){
警报(“我需要知道我在模糊上所做的阵列的位置”);
}
//数据表。
$(函数(){
$('#tableTest')。数据表({
“语言”:{“url”:”//cdn.datatables.net/plug-ins/1.10.20/i18n/Spanish.json“},
“分页”:正确,
“长度变化”:错误,
“搜索”:没错,
“排序”:正确,
“信息”:错误,
“自动宽度”:false,
“scrollX”:错误
});
});
伙计们,我该怎么做?你能帮助我吗?我搜索了DataTables API,但我迷路了。 提前谢谢你


祝你有愉快的一天

由于有一个名为
ID
的字段,您可以在首次构建表时(在
循环中)将其存储在HTML中,这可以作为
tr
的属性,例如

<tr data-id='<?php echo $r->id?>'>

然后,您需要将该
id
传递给您的内联编辑,以某种方式,这可以通过向onsubmit添加一个参数来实现,例如:

'... onsubmit="capturarEnvio(' + id + ')" ...'

我猜数据库中的数据有一个主键,可能叫做
id
。因此,可以将id添加到行的某个位置,作为
tr
的属性(不要使用style='display:none'使用css隐藏它)。然后,您的编辑通过其ID(而不是可能不匹配的行索引)知道正在编辑哪一行。哦,是的。。。我有一个叫做ID的字段!好主意!如果我想访问该ID以将其存储在变量中并在以后执行查询,该怎么办?例如,从该id运行SQL update语句。我该怎么做?提前谢谢你!与您已经做的相同,如果是一列,则为
nodoTr[0].textContent
(并调整其他列索引)。如果是数据属性,则
$(nodoTr).data(“id”)
(或与之相当的香草js)。非常感谢,伙计!!!!!!我不能投你的票,因为我是新来的,但真的谢谢你!记录在案的是,这种“按偏移量更新”的方法在许多应用程序中一直是问题的根源。当两个或两个以上的人在处理数据时,其中一人删除了一条记录,导致另一人的更改应用于不正确的记录,因为相对偏移量已更改。使用freedomn-m提到的记录的唯一ID是一种方法。谢谢。你是老板!
var id = $(nodoTr).data("id")
var id = nodoTr[0].textContent;
'... onsubmit="capturarEnvio(' + id + ')" ...'