Saludos, recién estoy experimentando con Ajax y pues me toco algo con base de datos, por lo que estube leyendo no es complicado, pero no entiendo pq lo que estoy haciendo no me sale.
Aqui les pongo los códigos a ver si me dan una manita.
(Los saque de un ejemplo que vi por ahi, adaptandolo a lo que necesito).
Código PHP:
//Aqui esta la parte donde tomo los valores de mi php donde esta el fomulario.
var input=document.getElementById("nombre");
var boton=document.getElementById("disponibilidad");// Boton presionado
var valor=input.value;
//..........
//..........
//Aqui la parte donde envio el valor tomado al archivo php
//que me verifica la existencia de dicho valor en la base de datos
var ajax=nuevoAjax();
ajax.open("POST", "../php-functions/functions.func.php", true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(valor);
ajax.onreadystatechange=function() {
if (ajax.readyState==4)
{
// Habilito nuevamente botones e inputs
input.value=valor;
boton.disabled=false; input.disabled=false;
// Muestro el mensaje enviado desde el servidor
divMensaje.innerHTML=ajax.responseText;
}
}
Esta es la parte del js que envia mi dato al archivo php donde se procesara y se vera si el dato que ingrese existe o no. Todo esto lo entinedo bien y si sale, el problema creoq ue es en el archivo php.
Aquí les envio el archivo php
Código PHP:
function validaIngreso($valor)
{
if(eregi("^[a-zA-Z0-9]{4,10}$", $valor)) return TRUE;
else return FALSE;
}
function verificaExistencia($usuario)
{
$consulta=mysql_query("SELECT us_code FROM usuarios WHERE us_code = '$usuario'") or die(mysql_error());
$registro=mysql_fetch_row($consulta);
if(!empty($registro)) return TRUE;
else return FALSE;
}
if (isset($_POST["nombre"])) {
$valor = trim($_POST["nombre"]);
if (validaIngreso($valor)) {
if (verificaExistencia($valor)) {
echo "Este nombre de usuario ya existe";
}
else {
echo "Nombre de usuario disponible";
}
}
else {
echo "Valor no valido " . $valor;
}
}
Al parecer no recibe la variable nombre enviada desde el .js, hice una prueba de imprimir el valor que supuestamente se envía desde el .js y no imprime nada.
Por favor (de rodillas) espero que me puedan ayudar, quizas sea algo que se me paso por alto y no puedo darme cuenta.
Gracias de antemano.