Me estoy poniendo en tema con "Ajax" y por GET "cero problemas" pero por POST hay algo que estoy haciendo mal pero no me arroja error alguno
Posteare primero la version via GET (ok)
Código Javascript:
Ver original
<html> <body> <form name="personal" action="../pruebas/ajax_recibe.php" id="personal1"> Edad: <input type="text" id="edad" onchange="ajaxByGet();"/> <br /> Peso: <input type="text" id="peso" onchange="ajaxByGet();" /><br /> Sexo: <select id="sexo" onchange="ajaxByGet();"> <option value="m">M</option> <option value="f">F</option> </select> </form> <div id="outputAjax">Resultados del lado del servidor</div> <script> var edad_el = document.getElementById('edad'), peso_el = document.getElementById('peso'), sexo_el = document.getElementById('sexo'), frm = document.getElementById('personal1'), outputAjax = document.getElementById('outputAjax'); function ajaxPrepare(){ try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("Error en Ajax"); return false; } } } // registro funcion para Ajax ajaxRequest.onreadystatechange = function() { if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200 ){ outputAjax.innerHTML = ajaxRequest.responseText; } } } function ajaxByGet() { var edad = edad_el.value, peso = peso_el.value, sexo = sexo_el.value; var params = "?edad=" + edad + "&peso=" + peso + "&sexo=" + sexo; ajaxRequest.open("GET", frm.action + '?' + params, true); ajaxRequest.send(null); } // inicializo ajaxRequest ajaxPrepare(); // Registro cambios en elementos deel formulario: onChange document.getElementById('personal1').addEventListener("change", function (event) { var tagname = event.target.tagName; if (tagname == 'INPUT' || tagname == 'SELECT' || tagname == 'TEXTAREA') { ajaxByGet(); } }); // Registro cambios en elementos deel formulario: onKeyup document.getElementById('personal1').addEventListener("keyup", function (event) { var tagname = event.target.tagName; if (tagname == 'INPUT' || tagname == 'TEXTAREA') { ajaxByGet(); } }); </script> </body> </html> </html>
Ahora la conflictiva por POST:
Código Javascript:
Ver original
<html> <body> <form name="personal" action="../pruebas/ajax_recibe.php" id="personal1"> Edad: <input type="text" id="edad" onchange="ajaxByPost();"/> <br /> Peso: <input type="text" id="peso" onchange="ajaxByPost();" /><br /> Sexo: <select id="sexo" onchange="ajaxByPost();"> <option value="m">M</option> <option value="f">F</option> </select> </form> <div id="outputAjax">Resultados del lado del servidor</div> <script> var edad_el = document.getElementById('edad'), peso_el = document.getElementById('peso'), sexo_el = document.getElementById('sexo'), frm = document.getElementById('personal1'), outputAjax = document.getElementById('outputAjax'); function ajaxPrepare(){ try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ alert("Error en Ajax"); return false; } } } // registro funcion para Ajax ajaxRequest.onreadystatechange = function() { if(ajaxRequest.readyState == 4 && ajaxRequest.status == 200 ){ outputAjax.innerHTML = ajaxRequest.responseText; } } } function ajaxByPost(){ var edad = encodeURIComponent(edad_el.value), peso = encodeURIComponent(peso_el.value), sexo = encodeURIComponent(sexo_el.value); var params = "?edad=" + edad + "&peso=" + peso + "&sexo=" + sexo; ajaxRequest.open("POST", frm.action, true); ajaxRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded"); ajaxRequest.send(params); } // inicializo ajaxRequest ajaxPrepare(); // Registro cambios en elementos deel formulario: onChange document.getElementById('personal1').addEventListener("change", function (event) { var tagname = event.target.tagName; if (tagname == 'INPUT' || tagname == 'SELECT' || tagname == 'TEXTAREA') { ajaxByPost(); } }); // Registro cambios en elementos deel formulario: onKeyup document.getElementById('personal1').addEventListener("keyup", function (event) { var tagname = event.target.tagName; if (tagname == 'INPUT' || tagname == 'TEXTAREA') { ajaxByPost(); } }); </script> </body> </html> </html>
Gracias desde ya