Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2011, 02:53
sentnel
 
Fecha de Ingreso: octubre-2010
Mensajes: 122
Antigüedad: 14 años, 4 meses
Puntos: 6
Atascado con formulario php, javascript y ajax

Hola a todos!

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!!!!