Foros del Web » Programando para Internet » PHP »

Imprimir datos de consulta de inputs dinamicos mediante HttpRequest

Estas en el tema de Imprimir datos de consulta de inputs dinamicos mediante HttpRequest en el foro de PHP en Foros del Web. Hola que tal, espero que me pudieran ayudar a resolver mi problema, les explico. Estoy realizando un script en PHP el cual ingresa datos a ...
  #1 (permalink)  
Antiguo 27/05/2013, 17:28
Avatar de bluecode1908  
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Imprimir datos de consulta de inputs dinamicos mediante HttpRequest

Hola que tal, espero que me pudieran ayudar a resolver mi problema, les explico.

Estoy realizando un script en PHP el cual ingresa datos a una BD en MySql de manera dinamica, existen varios inputs (el numero de inputs es asignado por el usuario) para ingresar id, lo que quiero es que al momento de llenar cada input este envie los datos y haga una consulta, si el id ingresado por el usuario existe, entonces que escriba el nombre, si no existe, que solo indique que es inexistente, hasta el momento he visto algunos ejemplos y he logrado realizar el proceso pero por partes. Indico al script que me genere 1 input, este lo genera y yo ingreso un id en el input y me devuelve ya sea el nombre o que es inexistente, el problema es cuando genero mas inputs ya que ingreso el id pero siempre me lo muestra en la primera posicion y sustituye el nombre que ya habia consultado, y lo que pretendo es que me lo muestre a un lado de cada input.

Dejo parte del codigo esperando que alguien me pudiese echar una mano o si alguien tiene alguna sugerencia para realizar lo que pretendo, aclaro que apenas inicio en estos casos. De antemano gracias.

Codigo javascript, este ejemplo lo encontre [URL="http://www.w3schools.com/php/php_ajax_database.asp"]aqui[/URL] y es el que me funciono.

Código Javascript:
Ver original
  1. function showUser(str)
  2. {
  3. if (str=="")
  4.   {
  5.   document.getElementById("txtHint").innerHTML="";
  6.   return;
  7.   }
  8. if (window.XMLHttpRequest)
  9.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  10.   xmlhttp=new XMLHttpRequest();
  11.   }
  12. else
  13.   {// code for IE6, IE5
  14.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15.   }
  16. xmlhttp.onreadystatechange=function()
  17.   {
  18.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  19.     {
  20.     document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  21.     }
  22.   }
  23. xmlhttp.open("GET","getuser.php?q="+str,true);
  24. xmlhttp.send();
  25. }

Esta parte es donde genero dinamicamente los inputs y donde quiero mostrar el dato de usuario dependiendo el id ingresado
Código PHP:
        for($i=1$i<=$numalu;$i++){

            echo 
'<td id="txtHint"><b>Numero de cuenta</b></td>'// dato extraido de la consulta
            
echo '<td><input type="text" name="cuenta[]" class="entrada" maxlength="7" size="10" onChange="showUser(this.value)"></td>';

Y este es el codigo que realiza la consulta y me devuelve el valor

Código PHP:
$q=$_GET["q"];
$sql="SELECT * FROM test_prefixtblalumnos WHERE aluCuenta = '".$q."'";

$result $mysqli->query($sql);
while(
$row $result->fetch_assoc())
  {
      echo 
$row["nombre"];
  }
  if(
$row $result->num_rows == ){
    echo 
'<b>Alumno no existente</b>';
  } 
  #2 (permalink)  
Antiguo 29/05/2013, 01:46
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Imprimir datos de consulta de inputs dinamicos mediante HttpRequest

NO se entiende muy bien lo que quieres, intenta reducir el código al mínimo y explicar exactamente donde tienes el problema, saludos.
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 29/05/2013, 13:13
Avatar de bluecode1908  
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Imprimir datos de consulta de inputs dinamicos mediante HttpRequest

Ok, disculpa por no darme a entender correctamente, va de nuevo:

Tengo un formulario para crear inputs, estos los genero dinamicamente de esta manera:

Código PHP:
Ver original
  1. for($i=1; $i<=$numalu;$i++){
  2.  
  3.             echo '<td id="txtHint"><b>Numero de cuenta</b></td>'; // dato extraido de la consulta
  4.             echo '<td><input type="text" name="cuenta[]" class="entrada" maxlength="7" size="10" onChange="showUser(this.value)"></td>';
  5. }

Donde $numalu es el numero asignado por el usuario, lo que pretendo es que al ir insertando datos en cada input, haga una consulta a la base de datos y este me muestre a un lado del input si ese dato ingresado existe o no en la base obviamente, busque un ejemplo y encontre uno [URL="http://www.w3schools.com/php/php_ajax_database.asp"]aqui[/URL], lo modifique y funciona, pero solo me funciona con un input a la vez. Pasa esto

Cuando escribo en el input de la posicion 1 del lado derecho me aparece lo que me arroja la consulta a la bd, hasta ahi todo bien, pero cuando inserto dato en el segundo input quiero que me aparezca al lado derecho el dato arrojado de la consulta, si lo hace pero me lo muestra al lado derecho del input de la posicion 1 en lugar de la posicion 2, lo que deseo es que vaya apareciendo cada dato a un lado de su input correspondiente.

El ejemplo que encontre usa esta funcion:
Código Javascript:
Ver original
  1. function showUser(str)
  2. {
  3. if (str=="")
  4.   {
  5.   document.getElementById("txtHint").innerHTML="";
  6.   return;
  7.   }
  8. if (window.XMLHttpRequest)
  9.   {// code for IE7+, Firefox, Chrome, Opera, Safari
  10.   xmlhttp=new XMLHttpRequest();
  11.   }
  12. else
  13.   {// code for IE6, IE5
  14.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  15.   }
  16. xmlhttp.onreadystatechange=function()
  17.   {
  18.   if (xmlhttp.readyState==4 && xmlhttp.status==200)
  19.     {
  20.     document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
  21.     }
  22.   }
  23. xmlhttp.open("GET","getuser.php?q="+str,true);
  24. xmlhttp.send();
  25. }

Notese que el input del for en el evento onChange llama a la funcion showUser que es la que manda el dato a "getuser.php" que es el que me devuelve el dato de la consulta realizada.

Codigo de consulta de php en "getuser.php"

Código PHP:
Ver original
  1. $q=$_GET["q"];
  2. $sql="SELECT * FROM test_prefixtblcuentas WHERE cuenta = '".$q."'";
  3.  
  4. $result = $mysqli->query($sql);
  5. while($row = $result->fetch_assoc())
  6.   {
  7.       echo $row["nombre"];
  8.   }
  9.   if($row = $result->num_rows == 0 ){
  10.     echo '<b>No existente</b>';
  11.   }

Espero me haya dado a entender esta vez y me puedan ayuda, gracias.
  #4 (permalink)  
Antiguo 31/05/2013, 03:45
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Imprimir datos de consulta de inputs dinamicos mediante HttpRequest

busque un ejemplo y encontre uno aqui, lo modifique y funciona, pero solo me funciona con un input a la vez. al leer los datos insertados por el usuario tendrás que iterar sobre ellos para que la consulta se haga una vez por cada elemento introducido. Dado que cuenta es un array, puedes utilizar cualquier bucle para conseguirlo,. Consulta la sintaxis de foreach en el manual de php, saludos.
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 31/05/2013, 15:28
Avatar de bluecode1908  
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Imprimir datos de consulta de inputs dinamicos mediante HttpRequest

Ok gracias, solo que me pregunto como enviar todos los datos del input 'cuenta[]', y enviarlo por el http request, ya que al imprimo el array de cuenta y me indica que solo contiene un valor, y es el ultimo dato insertado en el input, el manejar el array lo comprendo y entiendo que se tiene que hacer con un bucle, me gustaria recibir el array completo por el http request. Muchas gracias por tu respuesta.

Etiquetas: dinamicos, html, httprequest, inputs, mediante, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:54.