Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ayuda codigo AJAX

Estas en el tema de Ayuda codigo AJAX en el foro de Frameworks JS en Foros del Web. Como estan: No se manejar AJAX. Necesito dependiendo una opcion que se selecciona en una lista desplegable cargar dos datos de la base de datos ...
  #1 (permalink)  
Antiguo 16/10/2008, 09:36
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Ayuda codigo AJAX

Como estan:

No se manejar AJAX. Necesito dependiendo una opcion que se selecciona en una lista desplegable cargar dos datos de la base de datos y colocarlos en unos textbox que estan al lado de la listica. Me pueden orientar en como hacer esto con AJAX Please


Gracias
  #2 (permalink)  
Antiguo 16/10/2008, 09:54
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Ayuda codigo AJAX

mira en este post

http://www.forosdelweb.com/f13/cambi...ametro-634022/

si te caen dudas preguntayte intentaré guiar
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #3 (permalink)  
Antiguo 16/10/2008, 14:10
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Respuesta: Ayuda codigo AJAX

Gracias por responder pero la verdad no entendi muy bien como es el cuento. No entendi en el archivo que se hace la consulta como mando los datos al javascript para que se lo asigne al campo detexto o en ese cadso a los divs

Yo habia intentado hacerlo con un ejemplo que dan en la pagina.

http://www.pcimpacto.com.ar/informacion.php?id=45

Tengo esto


Código HTML:
<script type="text/javascript">
function getDataServer(url, vars){
     var xml = null;
     try{
         xml = new ActiveXObject("Microsoft.XMLHTTP");
     }catch(expeption){
         xml = new XMLHttpRequest();
     }
     xml.open("GET",url + vars, false);
     xml.send(null);
     if(xml.status == 404) alert("Url no valida");
     return xml.responseText;
}
</script>
<script type="text/javascript">
function ValProducto(campo){
	var IdProducto = document.getElementById("SYSCodProducto" + campo).value;
    var error = getDataServer("servajax.php","?InfProducto="+IdProducto);
    if(error){
        //alert(error);
		document.getElementById("SYSValUnitario"+campo).value = <?=$ValProducto;?>;
    }
}
</script>
<!-- El el formulario va la lista que llama la funcion -->
<select name="SYSCodProducto<?=$P;?>" id="SYSCodProductoSYS<?=$P;?>" onChange="ValProducto(<?=$P;?>);"

El archivito php es este
Código PHP:
<?
// Realizo la conexi{on a la base de datos.
include ("conexion.php");
$link conectarse();
if(
$_GET["InfProducto"]){

    
$consulta_chequeo mysql_query("select * from sysproductos where Id_Producto = ".$_GET["InfProducto"];
    
$ValProducto mysql_result($consulta_chequeo,0,ValUniProducto);
}
?>

Pues todo teoricamente ya esta bien pero no se como mandarle el resultado $ValProducto de la consulta para que se lo asigne al campo de texto que tiene valor de producto.

Me puede colaborar con eso gracias

Última edición por helacer; 16/10/2008 a las 14:19
  #4 (permalink)  
Antiguo 17/10/2008, 02:21
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Ayuda codigo AJAX

Vamos a intentar probar como yo se y entiendo,ok??

Código javascript:
Ver original
  1. //Funcion que crea el objeto ajax
  2. function objetoAjax(){
  3.     var xmlhttp=false;
  4.     try {
  5.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  6.     } catch (e) {
  7.         try {
  8.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  9.         } catch (E) {
  10.             xmlhttp = false;
  11.     }
  12.     }
  13.  
  14.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  15.         xmlhttp = new XMLHttpRequest();
  16.     }
  17.     return xmlhttp;
  18. }

ahora creamos la funcion que creará la instancia al objeto y realizará la petición

Código javascript:
Ver original
  1. function extraerInf(pagina,campo){
  2.     var par = "InfProducto="+document.getElementById("SYSCodProducto" + campo).value;
  3.     elementoDeRespuesta = document.getElementById('contenidoInfProducto'); //aquí mostraremos la respuesta que nos de el servidor al la petición
  4.     ajax=objetoAjax();
  5.     ajax.open("POST", pagina, true);
  6.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
  7.     ajax.send(par)
  8.     ajax.onreadystatechange=function() {
  9.         if (ajax.readyState==4) {
  10.             elementoDeRespuesta .innerHTML = ajax.responseText
  11.         }
  12.     }
  13.  
  14. }

Código html:
Ver original
  1. <!-- El el formulario va la lista que llama la funcion -->
  2. <select name="SYSCodProducto<?=$P;?>" id="SYSCodProductoSYS<?=$P;?>" onChange="extraerInf('servajax.php',<?=$P;?>);"
  3. <br />
  4. <!--Elemento donde mostraremos la respuesta-->
  5. <div id="contenidoInfProducto"></div>


Código php:
Ver original
  1. <?
  2. // Realizo la conexi{on a la base de datos.
  3. include ("conexion.php");
  4. @ $link = conectarse();
  5. if($_GET["InfProducto"]){
  6.  
  7.     $consulta_chequeo = mysql_query("select * from sysproductos where Id_Producto = ".$_GET["InfProducto"];
  8.     $ValProducto = mysql_result($consulta_chequeo,0,ValUniProducto);
  9.  
  10.     echo '<input type=text id="valProducto" name="valProducto" value="'.$ValProducto .'"/>';
  11. }
  12. ?>

Prueba a ver así y si no entiendes algo vuelve y comentamos

Saludos
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!
  #5 (permalink)  
Antiguo 17/10/2008, 10:34
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Respuesta: Ayuda codigo AJAX

Gracias ya lo entendi, solo me queda una duda.

Si necesitara retornar mas de un valor de la consulta; es decir, si aparte del precio necesito algun dato mas del producto como hago para llamarlo desde el ajax porqeu ese response.text me trae creo que lo ultimo que se imprimio en el archivo php pero si quiero traer dos valores como seria


Gracias
  #6 (permalink)  
Antiguo 20/10/2008, 03:56
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: Ayuda codigo AJAX

Cita:
Iniciado por helacer Ver Mensaje
Gracias ya lo entendi ... porqeu ese response.text me trae creo que lo ultimo que se imprimio en el archivo php
Seguro???

A ver te voy a intentar explicar.

Cuando tu haces una petición por medio de Ajax al servidor lo que haces es mandarle un archivo .php p.e. El servidor procesa dicha página y resposeText devuelve el resultado de ese procesamiento.

Cita:
Iniciado por helacer Ver Mensaje
si aparte del precio necesito algun dato mas del producto
Para ello solo tienes que escribir en la página resultado todo lo que desees mostrar.

Si por ejemplo el producto tiene una descripción que esta en la BD en el Campo DescProducto

<?
// Realizo la conexión a la base de datos.
include ("conexion.php");
@ $link = conectarse();
if($_POST["InfProducto"]){ //Si envias los datos por POST $_POST y si es por GET $_GET

$consulta_chequeo = mysql_query("select * from sysproductos where Id_Producto = ".$_POST["InfProducto"];
$ValProducto = mysql_result($consulta_chequeo,0,ValUniProducto);
$DescProducto = mysql_result($consulta_chequeo,0,DescProducto);
echo '<input type=text id="valProducto" name="valProducto" value="'.$ValProducto .'"/>';
echo '<input type=text id="descProducto " name="descProducto " value="'.$DescProducto .'"/>';
}
?>
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!

Última edición por matak; 21/10/2008 a las 02:02
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 06:38.