Muy buenas,
Quería plantear un problemilla...
estoy utilizando esta 'mini libreria'
Código PHP:
function llamarasincrono (url, id_contenedor)
{
var pagina_requerida = false;
if (window.XMLHttpRequest)
{
// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest ();
} else if (window.ActiveXObject)
{
// pero si es IE
try
{
pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
}
catch (e)
{
// en caso que sea una versión antigua
try
{
pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
else
return false;
pagina_requerida.onreadystatechange = function ()
{
// función de respuesta
cargarpagina (pagina_requerida, id_contenedor);
}
pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1)){
document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
}
else if(pagina_requerida.readyState == 1){
// ...en caso contrario, le diremos al usuario que los estamos cargando:
document.getElementById (id_contenedor).innerHTML = '<br></br><br></br><div align="center"><p>Cargando...</p<img src="./js/ajax_loader.gif" align="absmiddle" /> <p>';
}
}
Bien, la librería funciona perfectamente. El caso es que en un formulario: hago
Código PHP:
<form name="form1" method="post" action="javascript:llamarasincrono('./php/sesiones/reg.php', 'contenidos');">
<TABLE>
<TBODY>
<TR>
<TD align="right">Nombre de usuario:
<INPUT maxLength="25" size="15" name="username">
</TD>
</TR>
<TR>
.....
El formulario está en la misma página que la comprobación, en reg.php, siguiente:
Código PHP:
if (isset($_POST["username"])) {
$username = $_POST["username"];
$password = $_POST["password"];
$cpassword = $_POST["cpassword"];
$email = $_POST["email"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) {
echo "un campo está vacio.";
}else{
// ¿Coinciden las contraseñas?
if($password!=$cpassword) {
echo "Las contraseñas no coinciden";
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query("SELECT alias FROM usuarios WHERE alias='$username'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0|$username_exist>0) {
echo "EL nombre de usuario o la cuenta de correo estan ya en uso";
}else{
//Todo parece correcto procedemos con la inserccion
$query = "INSERT INTO usuarios (alias, pass, email) VALUES('$username','$password','$email')";
echo "Almost perfection";
mysql_query($query) or die(mysql_error());
echo "Perfection";
}
}
}
}else {
echo "<p>whats...</p>";
}
entonces siempre me enra en 'whats'.... Lo gracioso es que si pongo
Código PHP:
<form name="form1" method="post" [B]action="reg.php"[/B]>....
funciona bien, pero claro, no me lo carga en el <div id="contenidos">
Es posible que al pasar los valores del formulario de la manera que lo hago, se pierdan los $_POST ? si es así, cómo podría hacerlo para tener el 'post' en el div contenido?
muchas gracias de antemano!!!