Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/03/2005, 11:53
lcrecarey
 
Fecha de Ingreso: enero-2005
Mensajes: 116
Antigüedad: 20 años, 1 mes
Puntos: 0
Si lo puse aquí es porque creo que el problema está en la actualización del valor de la variable txtValue. Y eso se hace en un script.
Por otra parte, no me parece muy normal que te burles (jam1138) de gente como yo, que está desesperada por hacer las cosas, y que busca ayuda donde cree que la puede hallar.
Os explico mi problema más detallado.
Tengo el siguiente script:
Código HTML:
 <script language="JavaScript"> 
var i; 
function addOpt(oCntrl, sTxt, sVal, sCnd)
{ 
   if (sTxt.substr(0, sCnd.length).toUpperCase() == sCnd.toUpperCase())
    { 
        var selOpcion=new Option(sTxt, sVal); 
        eval(oCntrl.options[i++]=selOpcion); 
    } 
} 
function cambia(oCntrl)
{ 
   var txtVal = document.form_nueva_cita.paciente.value; 
   while(oCntrl.length > 0) 
        oCntrl.options[0]=null; 
   i = 0; 
   oCntrl.clear;
   <?php 
   $paciente=mysql_query("select Codigo,Nombre from Clientes order by Nombre",$link);  	      
   echo "addOpt(oCntrl,\"Seleccione un paciente\",\"0\",txtVal);";
   while($row = mysql_fetch_array($paciente)) 
     { 
       echo "addOpt(oCntrl,\"".$row['Nombre']."\",\"".$row['Codigo']."\",txtVal);";
     } 
   mysql_free_result($paciente); 
   ?>
} 
</script> 
Que tal y como está me busca en el select cada vez que escribo un carácter. Pero ... son 7000 y el primer caracter tarda de 1 minuto a 1 minuto y medio. Y ... mi intención era mejorar eso restringiendo el select.
El código que tengo en el cuerpo de la página es:
Código HTML:
<body onLoad="cambia(document.form_nueva_cita.select_paciente)">
<form name="form_nueva_cita" method="get" action="validar.php">
  <strong>Paciente:</strong>
  <input type="text" name="paciente" size="50" onKeyUp="cambia(document.form_nueva_cita.select_paciente)">
  <select name="select_paciente" >
  </select>
  <input type="submit" value="Crear cita">
</form>	
</body> 
Probé con este código PHP, para ver si la consulta sql funcionaba(pero en el body de la página, no en el script):
Código PHP:
  $txtVal='Tr';
$paciente=mysql_query("select Codigo,Nombre from Clientes where Nombre LIKE '$txtVal%' order by Nombre",$link);  
while(
$row mysql_fetch_array($paciente)) 
  { 
     echo 
'Codigo: '.$row['Codigo'].'<br>';
     echo 
'Nombre: '.$row['Nombre'].'<br>';
  } 
mysql_free_result($paciente); 
y la consulta me selecciona correctamente todos los registros cuyo campo nombre empieza por tr. Es decir, que me visualiza el código y el nombre de todos los pacientes que empiezan por tr.
Pero esto
Código PHP:
$paciente=mysql_query("select Codigo,Nombre from Clientes where Nombre LIKE 'txtVal%' order by Nombre",$link); 
dentro del script no funciona. Es por eso que llegué a la conclusion de que era el txtVal el que fallaba.
Si alguien ve algún error o sabe qué puedo hacer para corregir el fallo, agradezco su colaboración.
Gracias por anticipado a cualquier ayuda (que será bien recibida).