Tengo una consulta, estoy realizando un proyecto de facturación, donde debo hacer practicamente lo mismo que un sistema de un supermercado, donde se pasa el producto por un lector de código de barras y este crea automáticamente una línea con el nombre del producto, precio, cantidad, descuento, total, entre otros.
Estas son algunas dudas amigos:
1. Yo tengo un input que es el que hace el llamado al código de barras que cuando se deja de escribir (onkeyup) me muestra una nueva linea, sin embargo algo anda mal, porque si es mas de un caracter, automáticamente me crea 2 nuevas líneas y si borro, igual me crea una nueva línea. Como puedo mejorar esto?
2. No logro hacer que se me conecte mi codigo AJAX con la url, no se si estaré haciendo bien el llamado, por lo tanto, me crea la linea, más no me envia los datos.
Les paso mi codigo, para ver si saben como solucionarlo, muchas gracias de antemano.
index.html
Código HTML:
Ver original
<!DOCTYPE html> <html lang="es"> <head> <link rel="stylesheet" type="text/css" href="css/bootstrap.css"> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> </head> <body> <div class="box box-primary"> <div class="box-header"> </div> <div class="box-body"> Codigo Barras <input type="text" name="busqueda" class="form-control" id="busqueda" value="" placeholder="" maxlength="30" autocomplete="off" onKeyUp="nuevalinea();" /> </div> </div> <input type="submit" class="btn btn-primary" name="save" value="Salvar Factura"> <br/> <table class="table table-bordered table-hover"> <thead> </thead> <tbody class="detail"> </tbody> <tfoot> </tfoot> </table> </body> </html>
llenado_de_campos.js
Código Javascript:
Ver original
$(function() { $('body').delegate('.delete','click',function(){ $(this).parent().parent().remove(); }); }); function nuevalinea() { var codigo = $("input#busqueda").val(); var url = 'sentencias_ventas.php'; $.ajax({ type:'POST', url: url, data: {id:$('input#busqueda').val()}, dataType:'json', success: function(data){ if( data ) { $('.detail').append('<tr>'); $('.detail').append('<td class="no">' + n + '</td>'); $('.detail').append('<td align="center" width="50"><b>'+data['Nombre']+'</b></td>'); // son valores que deberia traer de la base de datos $('.detail').append('<td><input type="text" class="form-control" name="cantidad"></td>'); $('.detail').append('<td align="center" width="50"><b>'+data['PrecioVenta']+'</b></td>');// son valores que deberia traer de la base de datos $('.detail').append('<td><input type="text" class="form-control" name="descuento"></td>'); $('.detail').append('<td><input type="text" class="form-control" name="total"></td>'); $('.detail').append('<td><a href="#" class="btn btn-danger delete">Borrar</td>'); $('.detail').append('<tr>'); } } }); var n = ($('.detail tr').length - 0)+ 1; var tr = '<tr>' + '<td class="no">' + n + '</td>'+ '<td><input type="text" class="form-control" name="nombre"></td>'+ '<td><input type="text" class="form-control" name="cantidad"></td>'+ '<td><input type="text" class="form-control" name="precio"></td>'+ '<td><input type="text" class="form-control" name="descuento"></td>'+ '<td><input type="text" class="form-control" name="total"></td>'+ '<td><a href="#" class="btn btn-danger delete">Borrar</td>'+ '</tr>'; $('.detail').append(tr); }
sentencias_ventas.php
Código PHP:
Ver original
<?php //Archivo de conexión a la base de datos require'../../class/database.php'; $id = $_POST['id']; $objData = new Database(); $sth = $objData->prepare("SELECT Codigo, Nombre, PrecioVenta FROM producto WHERE Codigo LIKE '%$id%'"); $sth->execute(); $consulta = $sth->fetchAll();