Ver Mensaje Individual
  #1  
Antiguo 22-09-2020
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Habilitar boton html deshabilitado

Hola, compañeros.
Estoy desarrollando un sistema de facturación.

Tengo en pantalla una DataTable con los artículos en la que cada úno tiene un botón de añadir.

Cuando pulsamos el botón, se añade el artículo a la factura (en confección) y se desactiva el botón de Añadir para no repetir artículos, ya que en las líneas de la factura (en confección) se puede modificar el número de unidades de cada artículo.

El problema surge cuando se elimina un artículo de la factura ( en confección) y se quiere volver a añadir. Pues el botón queda deshabilitado y no se puede.

He intentado resolverlo de mil y una maneras, pero no lo consigo. La última es esta:

Código PHP:
function activa_aniadir(index){

var 
searchText document.getElementsByName("idarticulo[]")[index].value;    
$.
each($('#tblarticulos tbody tr'),function()
{  
    var 
currentRow=$(this);  
        var 
col1_value=currentRow.find("td:eq(5)").text();
       
    if (
col1_value == searchText)
    { 
alert('encontrado id = '+col1_value); // La identificación de la linea ES CORRECTA
        //var boton = currentRow.find("td:eq(0)").button();
        
currentRow('td:eq(0)').button().removeAttribute("disabled");
    
//    alert(currentRow.closest('tr').index());
//    borrar_filas(currentRow.closest('tr').index());    
    //$(this).removeAttribute("disabled");
    
        //alert(boton.name);
        //    boton[0].innerHTML.disabled="false";
    //    var activar = currentRow.find("td:eq(0)");
    //    activar['#addetalle'].prop("disabled",false);
    
}
/*
         indice = busca_fila(index);   
alert('indice = '+indice);
 // aquí me he quedado. ¿como selecciono el boton Añadir de la fila indice 
 // en la lista de articulos para habilitarlo de nuevo?
 // con 
 var table = $('#tblarticulos').DataTable();
 
table.row(':eq(0)', { page: 'current' }).select();
table('addetalle').prop("disabled",false);
*/


});


El código está en Javascript. Lo pongo en PHP para resaltarlo. La solución debe estar en Javascript.

He conseguido identificar la línea de la DataTable de los artículos.

Pero no sé cómo activar el botón. Veréis que he intentado de casi todo (está comentado)

Os pongo también la declaración de cada línea de la DataTable de los artículos:
Código PHP:
case 'listarArticulos':
            require_once 
"../modelos/Articulo.php";
            
$articulo=new Articulo();

                
$rspta=$articulo->listarActivosVenta();
            
$data=Array();

            while (
$reg=$rspta->fetch_object()) {
                
$btncolor='';
                if (
$reg->stock<=10) {
                    
$btncolor='<button class="btn btn-danger btn-xs">'.$reg->stock.'</button>';
                }elseif (
$reg->stock>10 && $reg->stock<30 ) {
                    
$btncolor='<button class="btn btn-warning btn-xs">'.$reg->stock.'</button>';
                }elseif (
$reg->stock>=30) {
                    
$btncolor='<button class="btn btn-success btn-xs">'.$reg->stock.'</button>';
                }
        
// pasamos el tipo_iva de cada artículo para calcularlo en crearventa.js
        
if ($reg->tipo_iva == 'G') {$impuesto = (floatval($_SESSION['iva_G']));}
        else 
        if (
$reg->tipo_iva == 'R') {$impuesto = (floatval($_SESSION['iva_R']));}
        else 
        if (
$reg->tipo_iva == 'S') {$impuesto = (floatval($_SESSION['iva_S']));}

                
$data[]=array(
                
"0"=>'<button class="btn btn-success btn-xs" id="addetalle" name="addetalle" 
onclick="agregarDetalle('
.$reg->idarticulo.',\''.$reg->nombre.'\','.$reg->precio_venta.',
'
.$reg->stock.','.$impuesto.')"><span class="fa fa-plus"></span> Añadir</button>',
                
"1"=>$reg->nombre,
                
"2"=>$reg->codigo,
                
"3"=>$btncolor,
                
"4"=>"<img src='../files/articulos/".$reg->imagen."' height='40px' width='40px'>",
                  
//lo pongo yo jmms para usarlo al activar de nuevo el boton Añadir
                  
"5"=>$reg->idarticulo
                  
);
            }

            
$results=array(
                 
"sEcho"=>1,//info para datatables
                 
"iTotalRecords"=>count($data),//enviamos el total de registros al datatable
                 
"iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
                 
"aaData"=>$data); 
            echo 
json_encode($results);

                break; 
Necesito vuestra ayuda. Gracias de antemano.
Saludos Cordiales.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 22-09-2020 a las 18:15:33.
Responder Con Cita