Os cuento, tengo un select dónde hay un listado de paises (se hace mediante una función php, y los valores los recoge de la base de datos). Una de las opciones es "agregar nuevo". Esta opcion hace aparecer un input text oculto que nos permite agregar un nuevo país.
El botón que deja añadir el país hace un insert a la base de datos, y después recarga el div dónde se encuentra el select.
El caso es, que aún refrescando el div después de hacer el insert, no aparece la nueva opción hasta recargar la página entera.
Puedo suponer que al ser asíncrono la recarga del div se hace antes de que el insert sea efectivo, pero desconozco cómo hacer que "se espere".
Código Javascript:
Ver original
function inesrtarPais(){ var pais = document.getElementById("paisNuevo").value; ajax = getXMLHttpRequest(); ajax.onreadystatechange = function() { if(ajax.readyState == 4) { cont.innerHTML = ajax.responseText; } } ajax.open('GET', 'funciones/insertarPais.php?paisNuevo=' +pais , false); ajax.send(null); var valido=ajax.responseText; alert(valido); if (valido=="OK "){// "OK" es la respuesta de la función insertPais.php $("#insertar_pais").hide(); $("#zonaPais").html("<?php menu_pais() ?>"); } }