2015-02-07 58 views
0

发送可变我尝试使用AJAX进行登录,但在发送变量的PHP文件arriv空..错误使用Ajax的PHP

阿贾克斯:

function enviar() 
    { 
    var ced=$("#cedula").val(); 
    var con=$("#contraseña").val(); 
    $.ajax({ 
     async:true, 
     type: "POST", 
     dataType: "html", 
     contentType: "application/x-www-form-urlencoded", 
     url:"sesion/index.php", 
     data:{"cedula": ced,"contraseña": con}, 
     beforeSend:inicioEnvio, 
     success:llegada, 
     error:problemas 
    }); 
     return false; 
    } 

PHP代码:

$operaciones=new operaciones(); 
    $operaciones->conexion(); 
    if($operaciones->verificar_login('usuario','USU_Cedula', 
     'USU_Contraseña',$_POST['cedula'], 
     $_POST['contraseña'], $result)== 1){codigo} 

回答

0

在PHP,试试下面的代码......它应该给你一个转储关闭所有发送..

<?php 
    echo "Request:<br /> ", print_r($_REQUEST,true), "<br />"; 
    echo "Get:<br /> ", print_r($_GET,true), "<br />"; 
    echo "Post:<br /> ", print_r($_POST,true), "<br />"; 
?> 

否则,js一目了然。尽管如此,我会建议jquery的POST方法。

$.post("sesion/index.php", { "cedula": ced,"contraseña": con }).done(function(data) { 
    alert("Data Loaded: " + data); 
}); 

使用后保存必须处理一些较好的设置,并应在一般使用中工作。 PHP似乎也很好地使用它。

before事件可以只是在post命令前面的一个调用,并且还有一个可以使用的错误函数。

编辑

对不起,小姐读它,我认为。 通过它的外观,你没有得到您的JS值瓦尔..

尝试做你获得自己的价值后直接报警,并尝试在后切换它们...尝试发送测试字符串到PHP。

var ced=$("#cedula").val(); 
var con=$("#contraseña").val(); 
alert(ced); 
alert(con); 

/* Try this in your post */ 
data:{"cedula": "test1","contraseña": "test2"}, 
+0

见变量arriv空! 请求:
阵列([cedula] => [contraseña] =>)
得到:
阵列()
发表:
阵列([cedula] => [contraseña] =>)
2015-02-07 14:54:51

+0

然后,如果必须是$(替换{“cedula”:ced,“contraseña”:con} ...... with {“cedula”:“test1”,“contraseña”:“#edula” test2“} ---请参阅编辑 – Mayhem 2015-02-07 14:56:35

+0

一旦您尝试上述更改,您应该知道它的输入元素是否导致问题或与帖子有关。如果你没有收到帖子变量......你确定它打到正确的页面,或者在帖子的正确时刻打印出来。 – Mayhem 2015-02-07 15:02:01

0
function verificar_login($tabla,$cedula_tab,$contra_tab,$txtCedula,$contraseña,&$result) 
{ 
    $sql = "SELECT *FROM $tabla WHERE $cedula_tab = '$txtCedula' and $contra_tab = '$contraseña' 
    and USU_Estado=1"; 
    $rec = mysql_query($sql); 
    $count = 0; 
    while($row = mysql_fetch_object($rec)) 
    { 
     $count++; 
     $result = $row; 
    } 
    if($count == 1) 
    { 
     return 1; 
    } 
    else 
    { 
     return 0; 
    } 
} 
+0

知道psql更多,所以,我会说... USU_Estado = 1 ....是无效的..因为它使用双引号“USU_Estado”包含大写字母。您因为没有有效的SQL查询/语法而得到该错误。仔细检查您的语句。 – Mayhem 2015-02-07 15:29:24

+0

以堆栈溢出的方式,如果您的原始问题得到答案。接受这个问题和任何新问题都是作为新问题开始的。但是像你的mysql之类的东西是一个很容易的错误,可以使用谷歌解决,这将最终指向你回到这里在stackoverflow上的答案。 – Mayhem 2015-02-07 15:30:46

+0

是啊最后的作品,是与字母“Ñ”的问题我忘了使用UTF-8哈哈感谢您的帮助。 – 2015-02-07 15:38:46