como usar la ontexchage de un select con ajax para consulta en php
como usar la ontexchage de un select con ajax para consulta en php
¿Algún saludo por lo menos?
Por favor replantea tu pregunta y dinos que llevas hasta ahora
con algunos ejemplos. Tal vez te podamos ayudar.
Saludos
disculpas por no saludar
este lo quiero es hacer una busqueda automatica desde un select con ajax, llamando la funcion ajax desde evento select onchange
el ajax es el siguiente
cuando selecciono SVfunction ajaxFunctionn(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
alert("Su navegador no soporta AJAX, por favor hable con sistemas");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay1 = document.getElementById('estado');
var ajaxDisplay2 = document.getElementById('proveedor');
var ajaxDisplay3 = document.getElementById('medida');
var resultado = ajaxRequest.responseText;
if (resultado != '--')
{
var resul = resultado.split('--');
ajaxDisplay1.value = resul[0];
ajaxDisplay2.value = resul[1];
ajaxDisplay3.value = resul[2];
}
else
{
ajaxDisplay1.value = "";
ajaxDisplay2.value = "";
ajaxDisplay3.value = "";
}
}
}
var activo = document.getElementById('producto').value;
var queryString = "?activo=" + activo;
ajaxRequest.open("GET","ajax1/activo.php" + queryString,true);
ajaxRequest.send(null);
}
el script php es el siguiente
<?php
mysql_select_db($database_gradu, $gradu);
// Retrieve data from Query String
$activo = $_GET["activo"];
// Escape User Input to help prevent SQL Injection
$activo = mysql_real_escape_string($activo);
//build query
$query = "SELECT estadoproductos.estadopro
, proveedores.nombreprov
, unidaddemedidad.unidadmedida
FROM
grado.producto
INNER JOIN grado.estadoproductos
ON (producto.idestadopro = estadoproductos.idestadopro)
INNER JOIN grado.proveedores
ON (producto.idproveedor = proveedores.idproveedor)
INNER JOIN grado.unidaddemedidad
ON (producto.idmedida = unidaddemedidad.idmedida)
WHERE producto.idpro = '".$activo."'";
//Execute query
if ($activo!="Seleccione Activo")
{
$qry_result = mysql_query($query) or die(mysql_error());
// Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
$display_string1 = $row['estadopro'];
$display_string2 = $row['nombreprov'];
$display_string3 = $row['unidadmedida'];
$display_string1 = mysql_real_escape_string($display_string1);
$display_string2 = mysql_real_escape_string($display_string2);
$display_string3 = mysql_real_escape_string($display_string3);
}
$display_string = $display_string1."--".$display_string2."--".$display_string3;
}
else
{
$display_string = "--";
}
$display_string = mysql_real_escape_string($display_string);
echo $display_string;
?>
<select name="paises" id="select2" disabled="disabled" title="Seleccione un pais" onchange="function ajaxFunctionn();">
<option value="SV">El salvador</option>
</select>
en el combo me llene campos texto desde ajax
no se si me explico
gracias por su ayuda
Última edición por Mario; 14/11/2011 a las 21:03
Por la funcion onTextChange me huele a ASP
Si todo fuera tan simple como symfony cc, la vida sería mas sencilla.
Si no recuerdo mal, el evento onChange solo funciona si el valor "cambia". En tu caso, solo existe un unico option, por lo que aunque lo selecciones nunca cambia. Deberias poner otro option (por ej, uno que tenga el valor "----" y de texto a presentar "----").Código PHP:<select name="paises" id="select2" disabled="disabled" title="Seleccione un pais" onchange="function ajaxFunctionn();">
<option value="SV">El salvador</option>
</select>
Por otra parte, el select lo tienes en "disabled". Por lo cual no puedes activarlo y cambiarle el valor... por tanto, otro punto para que no se lance la funcion ajax.
Otra cosa (esta para comprobarla): cuando defines el valor de un evento (la funcion que se llama cuando se genera dicho evento) no creo que debas poner la palabra "function", puesto que con eso estas "redefiniendo" una funcion. Para llamarla, simplemente pon su nombre.
un ejemplo del funcionamiento:
Comprueba lo que te comento y nos dices si hay avances, ok?Código PHP:<script language="javascript">
function ajaxFunctionn(){
alert("se ha lanzado el evento onchange");
}
</script>
<select name="paises" id="select2" title="Seleccione un pais" onchange="ajaxFunctionn();">
<option value="----">----</option>
<option value="SV">El salvador</option>
</select>
Última edición por jakala; 14/02/2012 a las 20:40
Dicen que "rectificar" es de sabios...pero hay que tener "capacidad" y soportar la "tension"
-------------------
www.jakala.es Actualmente disponible dias y horas aleatorias (es decir, cuando enciendo el server)
-------------------
Cuatro cosas malas tiene el mundo:
La boca de Jakala es lo primero;
el buche del milano lo segundo;
las manos de los monos es lo tercero;
y, como nunca logra verse harto
el ojo humano, siempre fue lo cuarto.
El usuario que creó este tema ingresó al foro únicamente esa vez hace casi un año, no creo que vuelva. XD
Oye jakala, llegas muy tarde en ayudarlo, no creo que ande cerca y tal vez se le olvidó de que alguna vez se registró en este foro.
Eliminen las firmas que están sobrando
Yo considero que cuando algún usuario (aunque tenga una sola intervención) hace una consulta, puede estar representando la inquietud de más de uno. De repente no a todos se les presentará el mismo problema al mismo tiempo y quizá sea después de uno o dos años, pero cabe la posibilidad que se presente.
Pienso que una de las fortalezas del foro de NeoTeo es su calidad de base de datos, una especie de enciclopedia de “multiconocimientos” que, así como un libro de biblioteca espera a ser leído por alguien, de la misma manera ese post estará ahí esperando que alguien tenga la misma interrogante. Y entonces la respuesta de Jakala, no estará de más. No te parece?
Incluso para nosotros mismos, que si bien en este momento no estamos involucrados en el tema, puede ser que mañana o pasado si lo requiramos, entonces recordaremos que lo leímos en el foro y será muy fácil ubicarlo.
En todo caso yo si le agradecería a Jakala por su respuesta y por el tiempo que se tomó para hacerla.
Saludos
“Aunque me digan infiel, prefiero convivir con las dos. La Verdad y La Razón.”
"Cuando llegue la inspiración, que me encuentre trabajando."
PICASSO, Pablo
Consulta el Indice de Montajes NeoTeo
RDBrot (15/02/2012)
Está bien que respondan, pero si otro usuario tiene una duda similar lo más probable es que abra otro tema ya que este no está resuelto y no se sabe que camino tomaría, además este foro es mas bien un foro de electrónica ya que es la única sección más rica y activa del foro, las demás están con muy poca actividad, un ejemplo el tema de acá.
Última edición por Multituberculata; 15/02/2012 a las 14:14
Eliminen las firmas que están sobrando
De repente no se trata de que quede resuelto, simplemente encontrar un apoyo o información que conduzca a la posible solución.
En todo caso es un buen momento para que una persona preparada como tú contribuya a enriquecerlo.
Todos estaremos pendientes de tus valiosos aportes en proyectos de electrónica, como bien dices.
Saludos
“Aunque me digan infiel, prefiero convivir con las dos. La Verdad y La Razón.”