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:
ajax.php<!-- // 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); } //-->
Código:
y por último, la que debería mostrar todo, test.php<? 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; } ?>
Código:
A ver si algún alma caritativa me puede echar una mano, más que nada en explicarme por qué no me funciona.<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>
Muchas gracias.