Estoy trabado con un formulario php, javascript y ajax. Tres campos, uno escaneo un articulo con un laser y sin recargar la pagina la base de datos me devuelve la descripcion del articulo.
Hasta aqui todo bien. Cuando la pagina de entrada carga el campo de "entrada" o escaneo esta listo para aceptar el "input" del scanner laser por javascript "focus" script.
Scaneo el articulo y me devuelve 1 dato, he aqui el problema numero 1:
1.- No logro que el sistema me devuelva dos campos (dos columnas de la tabla de la bd)
2.- No logro que despues de escanear un articulo y devuelva los datos, que el cursor vuelva automaticamente al campo de escaneo a esperar un nuevo scan
3.- No tengo idea de como organizar que segun vaya escaneando paquetes el sistema siga agregando una fila con los datos, es decir, escaneo 1 paquete y el sistema escribe los datos en una fila, vuelve el "focus" al campo de escaneo, escaneo un segundo paquete, el sistema escribe una segunda linea y vuelve al campo de escaneo, y asi sucesivamente.
Puede alguien orientarme en este sentido?
Pueden probar la pagina con este codigo: 8802946000357 , ingresandolo en "Scan" y oprimiendo "Enter" (esto simula como si ese codigo lo leyo el scanner laser): en sentnel.info
Este es el codigo de la pagina de entrada:
Código:
<script language="javascript" type="text/javascript"> <!-- // Get the HTTP Object function getHTTPObject(){ if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) return new XMLHttpRequest(); else { alert("Your browser does not support AJAX."); return null; } } // Change the value of the outputText field function setOutput(){ if(httpObject.readyState == 4){ document.getElementById('outputText0').value = httpObject.responseText; document.getElementById('outputText1').value = httpObject.responseText; } } // Implement business logic function doWork(){ httpObject = getHTTPObject(); if (httpObject != null) { httpObject.open("GET", "procesador.php?inputText=" +document.getElementById('inputText').value, true); httpObject.send(null); httpObject.onreadystatechange = setOutput; } } var httpObject = null; //--> </script> <form name="testForm"> Scan: <input type="text" onkeyup="doWork();" name="inputText" id="inputText" /> Articulo: <input type="text" name="outputText0" id="outputText0"/> Peso: <input type="text" name="outputText1" id="outputText1" /> </form> <script language="JavaScript"> <!-- document.testForm.inputText.focus(); //--> </script>
Este es el codigo de la pagina que procesa el query:
Código:
<?php $link = mysql_connect('localhost', 'pos', '12341234'); mysql_select_db("pos",$link); if (!$link) { die('No pudo conectarse: ' . mysql_error()); } ?> <?php $producto = $_GET['inputText']; function buscarProducto ($producto) { $query = "SELECT `scan_result`, `peso` FROM `pos`.`jos_inpospak_track` WHERE inputText = $producto"; $result = mysql_query($query); $row = mysql_fetch_array($result); return $row[scan_result]; } echo buscarProducto($producto); ?>
Es un servidor de prueba, pueden "puyarlo" si quieren.
Gracias un millon!!!!