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

Como cambiar los valores de 3 campos en función de lo que se selecciona en un select

Estas en el tema de Como cambiar los valores de 3 campos en función de lo que se selecciona en un select en el foro de Frameworks JS en Foros del Web. Hola amig@s! Hacía mucho tiempo que no posteaba nada, pero ahora necesito ayuda con una cosa muy sencilla para los expertos pero que para mi ...
  #1 (permalink)  
Antiguo 10/11/2010, 10:54
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Como cambiar los valores de 3 campos en función de lo que se selecciona en un select

Hola amig@s!

Hacía mucho tiempo que no posteaba nada, pero ahora necesito ayuda con una cosa muy sencilla para los expertos pero que para mi es un mundo porque no tengo ni idea de AJAX, es lo siguiente:

Basándome en un post que he encontrado estoy intentando completar el valor de 3 campos dependiendo de lo que se elija en el select, pero me carga todos los datos en dos de los 3 campos y ninguno en el tercero.

Copio aquí los códigos:

ajax.js

Código:
<!--
// devuelve un objeto XMLHttpRequest para varios navegadores
function AJAX() {
	try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {
		try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (ee) {xmlhttp = false;}
	}
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {xmlhttp = new XMLHttpRequest();} catch (e) {xmlhttp = false;}
	}
	if (!xmlhttp && window.createRequest) {
		try {xmlhttp = window.createRequest();} catch (e) {xmlhttp = false;}
	}
	if (!xmlhttp) {
		alert("Tu navegador no soporta el objecto XMLHttpRequest.");
	}
	return xmlhttp;
}

var alCambiarLaLista = function(item1,item2,item3) {
   // obtenemos un objeto XMLHttpRequest en la variable ajax	
   var ajax = new AJAX();
   // Construimos la petición a ajax.php con el valor seleccionado del select como parámetro
   ajax.open("GET","ajax.php?palabra=" + item1.value,true);
   // Cambió el estado de la petición
   ajax.onreadystatechange = function() {
      // Si completada la petición
      if (ajax.readyState == 4) {
         // Si la respuesta es 200 OK
         if (ajax.status == 200) {
            document.getElementById("NroItem").value = ajax.responseText;
            document.getElementById("PrecioItem").value = ajax.responseText;
            document.getElementById("NombreItem").value = ajax.responseText;
         }
      }
   }
   // Ejecutamos la petición
   ajax.send(null);
}
//-->
ajax.php

Código:
<?
    if ($_GET['palabra'] == "Anuncio Simple") {
    	echo $NroItem = 1001;
    	echo $PrecioItem = 800;
    	}
    if ($_GET['palabra'] == "Anuncio Doble") {
    	echo $NroItem = 1002;
    	echo $PrecioItem = 1600;
    	}
    if ($_GET['palabra'] == "Anuncio Triple") {
    	echo $NroItem = 1003;
    	echo $PrecioItem = 2400;
    	}
    if ($_GET['palabra'] == "Anuncio Cuadruple") {
    	echo $NroItem = 1004;
    	echo $PrecioItem = 3200;
    	}
    if ($_GET['palabra'] == "Anuncio Quintuple") {
    	echo $NroItem = 1005;
    	echo $PrecioItem = 4000;
    	}
 
?>
y por último, la que debería mostrar todo, test.php

Código:
<script type="text/javascript" src="ajax.js"></script>
<form>
<select id="NombreItem" onchange="alCambiarLaLista(this)">
<option value=''><- Selecciona-></option>
<option value='Anuncio Simple'>Anuncio Simple</option>
<option value='Anuncio Doble'>Anuncio Doble</option>
<option value='Anuncio Triple'>Anuncio Triple</option>
<option value='Anuncio Cuadruple'>Anuncio Cuadruple</option>
<option value='Anuncio Quintuple'>Anuncio Quintuple</option>
</select>
<input type='text' id='NroItem' size='5' name='NroItem'>
<input type='text' id='NombreItem' size='10' name='NombreItem'>
<input type='text' id='PrecioItem' size='5' name='PrecioItem'>
<br>
<input type='submit' name='submit' value='Comprar'>
</form>
A ver si algún alma caritativa me puede echar una mano, más que nada en explicarme por qué no me funciona.

Muchas gracias.
  #2 (permalink)  
Antiguo 11/11/2010, 07:26
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Como cambiar los valores de 3 campos en función de lo que se selecciona en

¿Nadie me puede echar un cable? Estoy intentando aprender algo de AJAX y pensé que con algo tan sencillo podría, pero veo que solo no puedo
  #3 (permalink)  
Antiguo 11/11/2010, 10:57
Avatar de tavomestra22  
Fecha de Ingreso: octubre-2010
Ubicación: Colombia
Mensajes: 21
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Como cambiar los valores de 3 campos en función de lo que se selecciona en

pero asi no te da la misma respuesta en todos los campos.....

yo tengo algo parecido mira este post

yo lo hice asi..... soy navato.... y nose si hay otra forma

#
if(ajax.status==200){
#
respuesta=ajax.responseText;
#
datos = respuesta.split(",");
#
cnombre.value=(datos[0]);
#
capellido.value=(datos[1]);

http://www.forosdelweb.com/f18/mostrar-datos-input-851683/
  #4 (permalink)  
Antiguo 11/11/2010, 11:09
Avatar de chicohot20  
Fecha de Ingreso: mayo-2009
Mensajes: 388
Antigüedad: 15 años
Puntos: 43
Respuesta: Como cambiar los valores de 3 campos en función de lo que se selecciona en

Mi metodo es un poco diferente:

Código HTML:
Ver original
  1. <!--
  2. // devuelve un objeto XMLHttpRequest para varios navegadores
  3. function AJAX() {
  4.     try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {
  5.         try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (ee) {xmlhttp = false;}
  6.     }
  7.     if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
  8.         try {xmlhttp = new XMLHttpRequest();} catch (e) {xmlhttp = false;}
  9.     }
  10.     if (!xmlhttp && window.createRequest) {
  11.         try {xmlhttp = window.createRequest();} catch (e) {xmlhttp = false;}
  12.     }
  13.     if (!xmlhttp) {
  14.         alert("Tu navegador no soporta el objecto XMLHttpRequest.");
  15.     }
  16.     return xmlhttp;
  17. }
  18.  
  19. var alCambiarLaLista = function(item1,item2,item3) {
  20.    // obtenemos un objeto XMLHttpRequest en la variable ajax   
  21.   var ajax = new AJAX();
  22.   // Construimos la petición a ajax.php con el valor seleccionado del select como parámetro
  23.   ajax.open("GET","ajax.php?palabra=" + item1.value,true);
  24.   // Cambió el estado de la petición
  25.   ajax.onreadystatechange = function() {
  26.      // Si completada la petición
  27.      if (ajax.readyState == 4) {
  28.         // Si la respuesta es 200 OK
  29.         if (ajax.status == 200) {
  30.            document.getElementById("result").innerHTML = ajax.responseText;
  31.            document.getElementById("NroItem").value = document.getElementById("nro").innerHTML;
  32.            document.getElementById("NombreItem").value = document.getElementById("nombre").innerHTML;
  33.            document.getElementById("PrecioItem").value = document.getElementById("precio").innerHTML;
  34.         }
  35.      }
  36.   }
  37.   // Ejecutamos la petición
  38.   ajax.send(null);
  39. }
  40. //-->
  41. <div id="result"></div>
  42. <select onchange="alCambiarLaLista(this)">
  43. <option value=''><- Selecciona-></option>
  44. <option value='Anuncio Simple'>Anuncio Simple</option>
  45. <option value='Anuncio Doble'>Anuncio Doble</option>
  46. <option value='Anuncio Triple'>Anuncio Triple</option>
  47. <option value='Anuncio Cuadruple'>Anuncio Cuadruple</option>
  48. <option value='Anuncio Quintuple'>Anuncio Quintuple</option>
  49. <input type='text' id='NroItem' size='20' name='NroItem'>
  50. <input type='text' id='NombreItem' size='20' name='NombreItem'>
  51. <input type='text' id='PrecioItem' size='20' name='PrecioItem'>
  52. <br>
  53. <input type='submit' name='submit' value='Comprar'>
  54. </form>


ajax.php
Código PHP:
Ver original
  1. <?
  2. $nro="10";
  3. $nombre="Nombre producto";
  4. $precio="20.00";
  5.     if ($_GET['palabra'] == "Anuncio Simple") {
  6.         echo "<span id='nro'>$nro</span><span id='nombre'>$nombre</span><span id='precio'>$precio</span>";
  7.         }
  8.     if ($_GET['palabra'] == "Anuncio Doble") {
  9.         $nro="102";
  10. $nombre="Nombre2 producto";
  11. $precio="202.00";
  12.         echo "<span id='nro'>$nro</span><span id='nombre'>$nombre</span><span id='precio'>$precio</span>";
  13.         }
  14.     if ($_GET['palabra'] == "Anuncio Triple") {
  15.         $nro="103";
  16. $nombre="Nombre3 producto";
  17. $precio="203.00";
  18.         echo "<span id='nro'>$nro</span><span id='nombre'>$nombre</span><span id='precio'>$precio</span>";
  19.         }
  20.     if ($_GET['palabra'] == "Anuncio Cuadruple") {
  21.         $nro="104";
  22. $nombre="Nombre4 producto";
  23. $precio="204.00";
  24.         echo "<span id='nro'>$nro</span><span id='nombre'>$nombre</span><span id='precio'>$precio</span>";
  25.         }
  26.     if ($_GET['palabra'] == "Anuncio Quintuple") {
  27.         $nro="105";
  28. $nombre="Nombre5 producto";
  29. $precio="205.00";
  30.         echo "<span id='nro'>$nro</span><span id='nombre'>$nombre</span><span id='precio'>$precio</span>";
  31.         }
  32.  
  33. ?>
  #5 (permalink)  
Antiguo 11/11/2010, 12:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Como cambiar los valores de 3 campos en función de lo que se selecciona en

Muchas gracias, chicohot20, es justo lo que necesitaba para enterarme un poco de cómo va esto.

Etiquetas: campos, funcion, select, cambios
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 22:59.