Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/04/2012, 12:12
LuigBren
 
Fecha de Ingreso: marzo-2009
Mensajes: 41
Antigüedad: 16 años
Puntos: 0
Respuesta: come enviar formularios de un chat php en ajax en un solo archivo

Cita:
Iniciado por sneyder05 Ver Mensaje
Saludos LuigBren

Puedes crear 1 único archivo PHP y usar switch para saber que código ejecutar y que respuesta retornar al AJAX, prueba algo como esto:

Nota como añadí otro parámetro más en la variable dataString, en este caso fué action=enviar, y que modifiqué la url del AJAX por chat.php.

Ahora puedes usar la misma estructura y cambiar el parámetro action de acuerdo a cada case que tengas en el switch

Pruébalo y nos comentas.
Gracias sneyder05, muy interesante tu idea, pero no me cuadra :( puede ser que estoy colocando mal las funciones, estoy probando en un archivo para verificar usuarios y siempre me dice no disponible.. te dejo el codigo de ejemplo que uso..

index.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="js.js" type="text/javascript"></script>    
</head>
<body>
<?php
    
if($_POST){
        
$action $_POST['action'];
        if(!empty(
$action )){
            switch (
$action){
                case 
"enviar":
                    include(
"conex.php");
                    
$nick $_POST["nick"];
                    
$consulta mysql_query("select username FROM chat where username = '$nick'",$link);
                    
$numrows mysql_num_rows($consulta);
                    if (
$numrows 0) {
                    echo 
0;
                    }else{
                    echo 
1;
                    }
                break;
                case 
"mostrar":
                    
//Aqui tu código PHP
                
break;
            }
        }
    }
?> 
<form id="frmRegistro" onsubmit="return false">
    <label> Nick: </label>
    <input type="text" id="nick" name="nick" />
    <input type="submit" name="btonsend" id="btonsend" disabled="disabled" value="Enviar"/>
    <div id="msgUsuario"></div>
</form>
</body>
</html>
js.js
Código:
$(document).ready(function(){
	
$('#nick').focusout( function(){
    if($('#nick').val()!= ""){
		
     	var username = $('#nick').val();
		var dataString = 'action=enviar&nick=' + username;	
		
        $.ajax({
            type: "POST",
            url: "index.php",
            data: dataString,
            success: function( respuesta ){
              
			  if(respuesta == '1'){
                $('#msgUsuario').html("Disponible");
				$('#btonsend').removeAttr('disabled')
			  }else{
                $('#msgUsuario').html("No Disponible");
				$('#btonsend').attr('disabled','-1')	
			  }
			  
			}
        });
		
    }
});


});
En cambio si uso ese mismo ejemplo pero quitandole la opcion "action=enviar&" en el dataString y agreando la url del otro archivo.php url: "chequear.php" donde esta la misma consulta mysql para verificar el usuario que esta en el ejemplo si me funciona, que puede estar pasando? la pagina no recarga, no se si sera por eso..