Member 10177561 Ответов: 0

Datatable в модальной форме внезапно перестает функционировать


У меня есть datatable, от DataTable pluggin из JQuery.
В модальной форме у меня есть одна datatable, которая отлично работала до одного дня.


Другие подробности заключаются в том, что генерируется html-код, как вы можете видеть на рисунке ниже:

https://ibb.co/qy6hcnS
У меня есть другой модальный вариант, как этот, но с другой таблицей счетов клиентов, и он отлично работает:

 $(window).on('shown.bs.modal', function() { 

 $('#resultadomodalCC_filter label input').focus();

     });
$(document).ready(function() {  
 
 $("a[name=agregar]").on('click',function(){
          
           var id = $(this).attr("id");
            var acta = $("input[name="+id+"]").val();
          
        $.ajax({
        type: "POST",
            url: "../gestionn/views/modules/cliente/procesodeuda.php",
            data: {"accion":"acreditar","idc":id,"monto":acta,"sesion":$("#sesion").val()}, 
          

            error: function(){
                alert("error petición ajax");
            },
           success: function(data){
        window.location.reload();
            }
            });
});
    accion="listar";
	 $.ajax({
	  
            type: "POST",
            url: "../gestionn/views/modules/cliente/includes/editarCliente.php",
            data: { "accion": accion}, 
            dataType: "json",
error: function(){
                alert("error petición ajax");
            },
            success: function(data){
                 t=  $('#resultadomodalCC').DataTable({
 
    data:data,
               
 
        columns: [
        {data:"CUIT", title: "CUIT" },
        {"data": "nombre", title: "NOMBRE " },
        {"data": "deduda", title: "DEUDA" },
        {"title": "ENTREGO" ,  render: function (data, type, row,meta) {
            return '<input type="text" name="'+row.idcliente+'" class="editableM"/>';
            $(".editableM").maskMoney({prefix:'$', allowNegative: true, thousands:',', decimal:'.', affixesStay: false});
         } },
        {title: "PAGO",  render: function (data, type, row,meta) {
            return "<a class='btn btn-primary' id="+row.idcliente+" name='agregar' >+</a>";
            
         }  }
         ],
 
        language:{
                        "sProcessing":     "Procesando...",
                        "sLengthMenu":     "Mostrar _MENU_ registros",
                        "sZeroRecords":    "No se encontraron resultados",
                        "sEmptyTable":     "Ningún dato disponible en esta tabla",
                        "sInfo":           "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
                        "sInfoEmpty":      "Mostrando registros del 0 al 0 de un total de 0 registros",
                        "sInfoFiltered":   "(filtrado de un total de _MAX_ registros)",
                        "sInfoPostFix":    "",
                        "sSearch":         "Buscar:",
                        "sUrl":            "",
                        "sInfoThousands":  ",",
                        "sLoadingRecords": "Cargando...",
                        "oPaginate": {
                            "sFirst":    "Primero",
                            "sLast":     "Último",
                            "sNext":     "Siguiente",
                            "sPrevious": "Anterior"
                        },
                        "oAria": {
                            "sSortAscending":  ": Activar para ordenar la columna de manera ascendente",
                            "sSortDescending": ": Activar para ordenar la columna de manera descendente"
                        }
                        },
   
          responsive: true }); } });
    });


в самом деле template.php файл, главный файл, который у меня есть:

<?php error_reporting(E_ALL);
ini_set('display_errors', '1');?>
<html>
<head>
   <title>GESTION</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<script src="exit.js"></script>

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
        <!-- jQuery CDN - Slim version (=without AJAX) -->
     <script src="includes/jquery-3.3.1.js"></script>
    <!-- Popper.JS -->
 
   <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
    
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.13.4/jquery.mask.min.js"></script>
<script src="views/jquery.maskMoney.js" type="text/javascript"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js" integrity="sha384-cs/chFZiN24E4KMATLdqdvsezGxaGsi4hLGOzlXwp5UZB1LY//20VyM2taTB4QvJ" crossorigin="anonymous"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.css"/>

<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
</head>
<body>
  <div class="modal fade" id="modalstockprod" role="dialog">
    <div class="modal-dialog modal-lg"style="width: 75%;">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
<h4 class="modal-title">BUSQUEDA DE ARTICULO</h4>
                <button type="button" class="close" data-dismiss="modal">×</button>
                
            </div>
            <div class="modal-body">

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">CERRAR</button>
            </div>
        </div>
    </div>
</div>
  <div class="modal fade" id="myModala" role="dialog">
    <div class="modal-dialog modal-lg"style="width: 75%;">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
<h4 class="modal-title">BUSQUEDA DE ARTICULO</h4>
                <button type="button" class="close" data-dismiss="modal">×</button>
                
            </div>
            <div class="modal-body">

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">CERRAR</button>
            </div>
        </div>
    </div>
</div>
  <div class="modal fade" id="myModalCC" role="dialog">
    <div class="modal-dialog modal-lg"style="width: 75%;">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
<h4 class="modal-title">CUENTAS</h4>
                <button type="button" class="close" data-dismiss="modal">×</button>
                
            </div>
            <div class="modal-bodyCC">

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">CERRAR</button>
            </div>
        </div>
    </div>
</div>
 <nav class = "navbar" role = "navigation">
         <div class = "navbar-header" >
         
            <a class = "navbar-brand" href = "#">GESTION WEB</a>
          <button type="button" id="sidebarCollapse" class="navbar-btn">M</button>
         </div>
         <div>
          <ul class="nav navbar-top-links navbar-right">
                
                    <a class="dropdown-toggle" data-toggle="dropdown" href="#">
                         <?php echo " " .$_SESSION ['username']; ?> 
                    </a>
                    <ul class="dropdown-menu dropdown-user" >
                        
                        
                        <li><a  id="exit"> Cerrar Sesion</a>
                        </li>
                    </ul>
                    <!-- /.dropdown-user -->
             
                <!-- /.dropdown -->
            </ul>
         </div>

      </nav>
<div class="wrapper">
    <!-- Sidebar -->
    <nav id="sidebar">

        <div id="dismiss">
            
        </div>

        <div class="sidebar-header">
            <h3>MENU PRINCIPAL</h3>
        </div>

        <ul class="list-unstyled components">
            <ul >
                <li><a data-toggle="modal" data-target="#myModala" href="" >
             <span  id="art"> ARTICULO - F2</span>
        </a>
            </ul>
                <ul>
                <ul class="list-unstyled components">
            <ul >
                <li><a data-toggle="modal" data-target="#miModals" href="" >
            <span  id="serv"> SERVICIO - F7</span>
        </a>
            </ul>
                <ul>  
                
            <ul class="list-unstyled components">
            <ul >
                <li><a data-toggle="modal" data-target="#myModalCC" href="" >
             <span  id="CC"> CUENTAS   - F4</span>
        </a>
            </ul></ul></ul>
                <ul>  
            <ul class="list-unstyled components">
            <ul >
                <li><a data-toggle="modal" href="" >
             <span  id="VENTA"> VENTA   -   F6</span>
        </a>
            </ul> </ul>       
    <li class="dropdown"><a  data-toggle="dropdown" class="dropdown-toggle">   
      <span>ABM</span></a>
    <ul class="dropdown-menu">
        <li><a class="opcion" href="index.php?controller=cliente&action=index">
        <span>Cliente</span>
        </a></li>
        <li><a href="index.php?controller=articulo&action=index">
        <span>Articulo</span>
        </a>
               
                </li>
        <li ><a class="opcion" href="index.php?controller=proveedor&action=index"> <span>Proveedores</span></a></a></li>
       <!-- <li ><a href="index.php?controller=envase&action=todos">Envases</a></li>
        <li ><a href="index.php?controller=medida&action=index">Medidas</a></li>
        <li ><a href="index.php?controller=canilla&action=index">Canillas</a></li> --!>
       <li ><a class="opcion" href="index.php?controller=user&action=index"> <span>Usuarios</span></a></li>
      </ul>
    </li>


    </li>
    <li class="dropdown"><a  data-toggle="dropdown" class="dropdown-toggle"> Estado de cajas</a>
    <ul class="dropdown-menu">
        <li><a class="opcion" href="">Chequera</a></li>
         <li><a href="index.php?controller=caja&action=index">CAJA</a></li>
    <!--    <li><a class="opcion" href="index.php?controller=caja&action=gasto">Nuevo Gasto</a></li>
        <li><a class="opcion" href="index.php?controller=caja&action=abrir">Abrir caja</a></li>
        <li><a class="opcion" href="index.php?controller=caja&action=index">Cerrar caja</a></li>
       --> <li><a class="opcion" href="index.php?controller=cliente&action=cuenta">Cuenta Corriente</a></li>
        <li><a class="opcion" href="index.php?controller=caja&action=indexgrande">Caja Grande</a></li>
        <li><a class="opcion" href="">Posnet</a></li>
      </ul>
    </li>

<li class="dropdown"><a  data-toggle="dropdown" class="dropdown-toggle">Compra de stock</a>
    <ul class="dropdown-menu">
        <li><a class="opcion" href="index.php?controller=stock&action=index">Productos</a></li>
        <li><a class="opcion" href="index.php?controller=stock&action=indexb">Barril</a></li>
        <li><a class="opcion" href="index.php?controller=stock&action=canilla">Cambio de canilla</a></li>
      </ul>
    
    </li>
  </ul>


      <input type="hidden" id="cajero" value="<?php if (isset($_SESSION["userid"])){

        

        echo $_SESSION['userid'];

      }?>"/> 
       <input type="hidden" id="sesion" value="<?php if (isset($_SESSION["idsesion"])){

        

        echo $_SESSION['idsesion'];

      }?>"/> 
       <input type="hidden" id="inicio" value="<?php if (isset($_SESSION["inicio"])){

        

        echo $_SESSION['inicio'];

      }?>"/> 

    </nav>
 
    <!-- Page Content -->
    <div id="content">

   <?php  if (isset($_GET['controller'])&&isset($_GET['action'])) {

        $controller=$_GET['controller'];

        $action=$_GET['action'];

        if (isset($_GET['id'])){
            
            $id=$_GET['id'];
            call($controller,$action,$id);
        }else{
            
        call($controller,$action,0); }

    }?>
     
    </div>
    <!-- Dark Overlay element -->
    <div class="overlay"></div>
</div>



   
</body>

</html>

некоторые предполагают?

Что я уже пробовал:

Код модальной формы таков:

<pre>$(window).on('shown.bs.modal', function() { 

 $('#resultadomodala_filter label input').focus();

  $('#resultadomodala_filter input').on('keypress', function(event){
   
     if (event.keyCode ===13){
        
           $('.cantidad:first').focus();
         }
     });});
$(document).ready(function() {

     $.ajax({
	  
            type: "POST",
            url: "../gestionn/views/modules/articulo/filtroP.php",
            data: { "tf": "todos"}, 
            dataType: "json",
            error: function(){
                alert("error petición ajax");
            },
            success: function(data){
                
           t=  $('#resultadomodala').DataTable({

    data:data,
 
        columns: [
        {"data":"codalfa", title: "COD.:" },
        {"data": "nombre", title: "NOMBRE" },
        {"data": "marca", title: "MARCA" },
        {"title": "P/U" ,  render: function (data, type, row,meta) {
            return '<label class="editable">$ '+row.precio+'</label>';
         } },
        {"data": "detalle", title: "CAT.:" },
        {"data": "subcategoria", title: "SUBCAT.:" },
          {  title:"CANT",
              data:null,
                render: function (data, type, row,meta) {
            return "<input type='text' style='width:50px;' name='"+row.idproducto+"' class='cantidad' value='1' tabindex='3' placeholder='cant'/>";
   
            }},
               {  title:"AGREGAR",
              data:null,
                render: function (data, type, row,meta) {
            return "<a  class='btn btn-primary' onclick='agregarProducto("+row.idproducto+");' name='agregar' >+</a>";
   
            }}
    ], 
 
  
  
    language:{
                        "sProcessing":     "Procesando...",
                        "sLengthMenu":     "Mostrar _MENU_ registros",
                        "sZeroRecords":    "No se encontraron resultados",
                        "sEmptyTable":     "Ningún dato disponible en esta tabla",
                        "sInfo":           "Mostrando registros del _START_ al _END_ de un total de _TOTAL_ registros",
                        "sInfoEmpty":      "Mostrando registros del 0 al 0 de un total de 0 registros",
                        "sInfoFiltered":   "(filtrado de un total de _MAX_ registros)",
                        "sInfoPostFix":    "",
                        "sSearch":         "Buscar:",
                        "sUrl":            "",
                        "sInfoThousands":  ",",
                        "sLoadingRecords": "Cargando...",
                        "oPaginate": {
                            "sFirst":    "Primero",
                            "sLast":     "Último",
                            "sNext":     "Siguiente",
                            "sPrevious": "Anterior"
                        },
                        "oAria": {
                            "sSortAscending":  ": Activar para ordenar la columna de manera ascendente",
                            "sSortDescending": ": Activar para ordenar la columna de manera descendente"
                        }
                        },
   
          responsive: true });

        },
    });

});
 function agregarProducto(idproducto){
    var cantidad=0;
    cantidad=$("input[name="+idproducto+"]").val();
    
    id=idproducto;
   
  
         if (cantidad!==""){
    var accion = "agregar";
 
    $.ajax({
	  
            type: "POST",
            url: "/gestionn/views/modules/facta/procesoFactA.php",
            data: {"accion":accion,"id":id,"cant":cantidad}, 
         

            error: function(){
                alert("error petición ajax");
            },
            success:function(){
                window.location.href="index.php?controller=facturaa&action=index";
            },
           
        });





    
  } else{
    alert("ingrese cantidad");
  }

}

Но я доказывал тот же самый код, передавая массив JSON вместо запроса ajax:

http://live.datatables.net/puxiyotu/1/edit

и как вы можете видеть, это работает отлично.

RickZeeland

Вы пробовали в другом браузере ?

Member 10177561

Очевидно.. Но это одно и то же

Richard Deeming

Проверьте консоль разработчика Вашего браузера на наличие ошибок.

Проверьте вкладку Сеть, чтобы увидеть, что делает ваш AJAX-запрос.

Если он работал, а потом остановился, значит, что-то изменилось. Либо вы изменили код, либо вы изменили базу данных, либо вы обновили браузер. Попытайтесь выяснить, что изменилось, когда код перестал работать, чтобы увидеть, дает ли это вам какие-либо подсказки.

0 Ответов