Update con Json, Ajax y php

Update con Json, Ajax y php

johanderjohander Posts: 10Questions: 4Answers: 0
edited March 2020 in Free community support

Buenas tardes, una consulta con respecto a lo que es el botón de editar en un datatable, ya que le implemente a mi tabla un crud, solamente me falta es el botón de editar, y como es con json y aqui el datatable trabaja con el método columns, no se como haria, a continuación le muestro mi codigo,
// aqui es como llamo a mi tabla y muestro mediante el metodo ajax y columns a mi tabla, cabe acotar que mi formulario del boton de editar es modal

<?php

    include ('./conexion.php');

    $query = "SELECT * FROM usuario";
    $resultado = mysqli_query($conexion, $query);
    // mysqli_set_charset($conexion, "utf8_encode");
    
    if(!$resultado){
        die("Error" . mysqli_errno($conexion));
    }else{
        // $json= array();
        $array["data"] = [];  //devuelve un arreglo vacio por si no hay registros en la base de datos
        while($data  = mysqli_fetch_array($resultado)){
        
        $array["data"][] = array_map("utf8_encode", $data);
        
        }
        
        $jsonstring = json_encode($array);
        echo $jsonstring;
    }
    mysqli_free_result($resultado);
    mysqli_close($conexion);
 ?>

ya obtengo la información de la tabla, osea cuando el doy al botón de editar me lo muestra en el formulario los datos que quiero editar, luego de ahi no se que hacer bien, el codigo de editar que tengo hasta ahora es :smile:
// asi obtengo los datos que muestro en mi formulario de editar:

$(document).ready(function(){
var table = $("#prueba").DataTable({
                    // "processing": true,
                    // "serverSide": true,
                    "destroy":true,
                    "dom": "lftip",
                    "ajax":{
                        "method":"POST",
                        "url": "listar.php"
                    },
                    "columns":[
                        {"data":"id"},
                        {"data":"nombre", className : "hola"},
                        {"data":"apellido"},
                        {"data":"dni"},
                        {data: null, "defaultContent":"<button type='button' class='editar btn btn-warning' data-toggle='modal' data-target='#edicion' id='{'data' : 'id'}'>Editar</button>"},
                        {data: null, "defaultContent":"<button type='button' class='eliminar btn btn-danger' data-toggle= 'modal' data-target= '#modalEliminar'>Eliminar</button>"} 
                        
                        ],
                        
                    "language": idioma_espanol,
                    
                });
$(document).on('click','.editar', function(){
                
                var datas = table.row( $(this).parents('tr')).data();
                var r = datas.id;
                ra = datas.nombre;  // asi obtengo justamente la información de mi fila 
                rb = datas.apellido;
                rc = datas.dni;
                console.log(r);
                 var Id = $("#Id").val( r ),  // aqui la planteo en el formulario
                        Nombre = $("#Nombre").val(ra),
                        Apellido = $("#Apellido").val( rb),
                        Dni = $("#Dni").val( rc);
});
});~~~~

ahora que puedo hacer?

Edited by Colin - Syntax highlighting. Details on how to highlight code using markdown can be found in this guide.

Answers

  • johanderjohander Posts: 10Questions: 4Answers: 0

    como se puede observar mi consola me muestra el "id" y ahi en el formulario me sale la información de cada fila que es lo que quería, porque por id es mas fácil editar, pero e intentado varias forma pero siempre me daban error alguna ayuda.?

  • colincolin Posts: 15,143Questions: 1Answers: 2,586

    Is this using Editor? We're happy to take a look, but as per the forum rules, please link to a test case - a test case that replicates the issue will ensure you'll get a quick and accurate response. Information on how to create a test case (if you aren't able to link to the page you are working on) is available here.

    Cheers,

    Colin

This discussion has been closed.