Foros del Web » Programando para Internet » Jquery »

Problema al cargar table con ajax

Estas en el tema de Problema al cargar table con ajax en el foro de Jquery en Foros del Web. buenas tardes, disculpen la molestia. en mi proyecto uso las siguientes librerias: jQuery y Bootstrap y mi problema es al siguiente: Código HTML: <table id= ...
  #1 (permalink)  
Antiguo 05/03/2016, 13:07
 
Fecha de Ingreso: diciembre-2013
Ubicación: Yaracuy
Mensajes: 27
Antigüedad: 10 años, 4 meses
Puntos: 0
Problema al cargar table con ajax

buenas tardes, disculpen la molestia.

en mi proyecto uso las siguientes librerias: jQuery y Bootstrap y mi problema es al siguiente:
Código HTML:
<table id="example" class="table table-striped table-bordered" cellspacing="0" width="100%">
                <thead>
                   <tr>
                      <th></th>
                      <th hidden="true">Id</th>
                      <th>Carácter</th>
                      <th>Estado</th>
                   </tr>
                </thead>
                <tbody>
                    <div id="resultado"></div>
                </tbody>
            </table> 
codigo ajax, donde mando a llamar la funcion e inserto en el html:

Código:
$(document).ready()
    $(function() {
        $.ajax({
            url: '../model/tipo_rif.php',
            data: {funcion: 'cambiarStatus'},
            type: 'POST',
            success: function(data) {
                $("#resultado").html(data);
                alert(data);
            },
            error: function(){
                alert('Error!');
            }
        });
    });
en el div resultado cargo desde Ajax, cuando se carga la pantalla.. el problema es q cuando lo cargo me aparece fuera del <table>

Código PHP:
<?php
    
require '../model/conexion.php';

    if(isset(
$_POST['funcion']) && !empty($_POST['funcion'])) {
        
$funcion $_POST['funcion'];
        switch(
$funcion) {
            case 
'cambiarStatus' test();break;
            case 
'blah' blah();break;
            
// ...etc...
        
}
    };
    
    function 
test(){
                        
$pdo conexion::connect(); 
                        
$sql "SELECT 
                                id, 
                                caracter, 
                                CASE 
                                WHEN status='t' THEN 'activo'
                                WHEN status='f' THEN 'inactivo'
                                ELSE 'error'
                                END AS status

                                FROM tipos_rif ORDER BY caracter"
;
                        
$con 1;
                        foreach (
$pdo->query($sql) as $row) {
                    
?>
                    <tr>
                        <td><?php echo $con?></td>
                        <td hidden="true"><?php echo $row['id']; ?></td>
                        <td><?php echo $row['caracter']; ?></td>
                        <td><input type="checkbox" data-toggle="toggle" onchange="CambiarStatus(<?php echo $row['id']; ?>)" data-on="Activado" data-off="Desactivado"<?php if($row['status']=="activo"){ ?> checked><label hidden="true">a</label><?php }else{ ?>><label hidden="true">b</label><?php ?></td>
                    </tr>
                    <?php
                        $con
++;
                        }
                        
conexion::disconnect();
    }
y corrobo en un alert q me imprima lo q deseo mando a colocar en el html.. y es correcto..



abre y cierra las filas y las columnas.. no veo el error de xq se salga del <table>

de antemano gracias

Última edición por Pablo00000; 05/03/2016 a las 14:06 Razón: me faltaba el codigo ajax
  #2 (permalink)  
Antiguo 07/03/2016, 08:12
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 4 meses
Puntos: 5
Respuesta: Problema al cargar table con ajax

Un div no se debe colocar dentro de una tabla, por lo tanto podrias hacer esto
Código Javascript:
Ver original
  1. $(function() {
  2.         $.ajax({
  3.             url: '../model/tipo_rif.php',
  4.             data: {funcion: 'cambiarStatus'},
  5.             type: 'POST',
  6.             success: function(data) {
  7.                 $("#example tbody").html(data);
  8.                 alert(data);
  9.             },
  10.             error: function(){
  11.                 alert('Error!');
  12.             }
  13.         });
  14.     });
  #3 (permalink)  
Antiguo 07/03/2016, 22:32
 
Fecha de Ingreso: diciembre-2013
Ubicación: Yaracuy
Mensajes: 27
Antigüedad: 10 años, 4 meses
Puntos: 0
Respuesta: Problema al cargar table con ajax

estuve investigando mas acerca del trabajo de ajax y su funcionamiento dinamico

el resultado q ahora me arroja es este:



y no entiendo por que?

codigo html:
Código HTML:
<table id="cargaTabla" class="table table-striped table-bordered" cellspacing="0" width="100%">
                <thead>
                   <tr>
                      <th></th>
                      <th hidden="true">Id</th>
                      <th>Carácter</th>
                      <th>Estado</th>
                   </tr>
                </thead>
                <tbody class="Datos">
                </tbody>
            </table> 
codigo ajax:
Código:
$(document).ready(function() {
    cargarTabla();
});

function cargarTabla(){
    $.ajax({
        url: '../controller/tipo_rif.php',
        dataType: 'json',
        type: 'POST',
        data: {
            'accion': 'cargarTabla' 
        },
        success: function (data) {
            $.each(data, function(index){
                var etiqueta;
                if($(data[index].status).text('activo')){
                    etiqueta = "<input type='checkbox' data-toggle='toggle' onchange='CambiarStatus("+data[index].id+")' data-on='Activado' data-off='Desactivado' checked><label hidden='true'>a</label>";
                }else if($(data[index].status).text('inactivo')){
                    etiqueta = "<input type='checkbox' data-toggle='toggle' onchange='CambiarStatus("+data[index].id+")' data-on='Activado' data-off='Desactivado'><label hidden='true'>b</label>";
                }
                $(".Datos").append("\
                    <tr>\n\
                        <td>"+data[index].cont+"</td>\n\
                        <td hidden='true'>"+data[index].id+"</td>\n\
                        <td>"+data[index].caracter+"</td>\n\
                        <td>"+etiqueta+"</td>\n\
                    </tr>\n\
                ");
            });
        }
    });
}

codigo php:
Código PHP:
<?php
include("../model/conexion.php");

if(
$_POST["accion"]=="cargarTabla"){
    
cargarTabla();
}

function 
cargarTabla(){
    
$pdo conexion::connect(); 
    
$sql "SELECT 
            id, 
            caracter, 
            CASE 
            WHEN status='t' THEN 'activo'
            WHEN status='f' THEN 'inactivo'
            ELSE 'error'
            END AS status

            FROM tipos_rif ORDER BY caracter"
;
    
$cont=0;
    foreach (
$pdo->query($sql) as $row) {
        
$cont++;
        
$datos[] = array('cont'=>$cont,'id'=>$row['id'],'caracter'=>$row['caracter'],'status'=>$row['status']);
    }
    
conexion::disconnect();
    
header('Content-type: application/json');
    echo 
json_encode($datos);
}
disculpen mi ignorancia pero ya no se q hacer! y me urge

Etiquetas: ajax, table
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:22.