首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP AJAX调用中的空响应

PHP AJAX调用中的空响应
EN

Stack Overflow用户
提问于 2012-07-06 19:23:15
回答 2查看 1.3K关注 0票数 0

我在另一个网站上有一个可以工作的登录脚本,通过AJAX加载PHP脚本。我似乎不明白为什么我会得到一个空响应,而它应该是简单的false或一个值数组。

当我手动将这些值放入php脚本(硬编码)中时,它起作用了。我可以在控制台中看到变量是从表单发送的。但是,没有返回任何内容。有人能发现我遗漏了什么吗?

感谢您的任何帮助或想法。

登录PHP

代码语言:javascript
复制
<?php 
$login = $_POST['login'];
$password = $_POST['password'];

require_once("DB.php");
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!"); 
mysql_select_db($db) or die ("Unable to select database!"); 

$query = "SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 
if (mysql_num_rows($result) > 0) { 
$output = "true";
     while(list($member_id, $firstname, $lastname, $login, $passwd, $City, $State, $bday, $approved, $organization, $school, $trainingdate, $Subscriber, $wscoordinator, $Position, $subdate, $enddate, $notice, $book, $trial)  = mysql_fetch_row($result)) { 
echo json_encode(array('memberid' => $member_id, 'firstname' => $firstname, lastname => $lastname, approved => $approved, subscriber => $Subscriber, position => $Position, school => $school, login => $login, book =>$book, ws => $wscoordinator, trial => $trial, enddate => $enddate));
}
} else {
$output = "false";
echo json_encode($output);
}


?>

AJAX,使用jQuery。

代码语言:javascript
复制
$('#loginForm #loginButton').click(function(){
        var $form = $('#loginForm'),
    $inputs = $form.find("input"),
    serializedData = $form.serialize();
    var login = $('#login').text('');
    var password = $('#password').text('');
    $.ajax({
      type: 'POST',
      url: 'Scripts/php/login.php',
      data: serializedData,
      success: function(response){
        console.log("Response: "+response);
        if(response != "false") 
        {
        //window.location.href='toolstart.html';
        $.cookie('lastname', response.lastname, { expires: 365, path: '/' });
        } else {
        alert("Your email and password combination did not match.");
        }

        },      
  dataType: 'json'
});    

(是的,我知道我需要离开MD5;只是还没有做到这一点。)

EN

回答 2

Stack Overflow用户

发布于 2012-07-06 21:34:45

只需将.text();替换为.val(),因为text()会为文本输入类型提供空白结果。val()会给出实际的值。其次,使用var_dump($_POST); die;。Ahh...check是否您的函数:

代码语言:javascript
复制
$('#loginForm #loginButton').click(function(){
        var $form = $('#loginForm'),
    $inputs = $form.find("input"),
    serializedData = $form.serialize();
    var login = $('#login').text('');
    var password = $('#password').text('');
    $.ajax({
      type: 'POST',
      url: 'Scripts/php/login.php',
      data: serializedData,
      success: function(response){
        console.log("Response: "+response);
        if(response != "false") 
        {
        //window.location.href='toolstart.html';
        $.cookie('lastname', response.lastname, { expires: 365, path: '/' });
        } else {
        alert("Your email and password combination did not match.");
        }

        },      
  dataType: 'json'
});**});**

少了一些花括号,就像我发现的那样。请务必回复您的var_dump($_POST);die;消息。

票数 0
EN

Stack Overflow用户

发布于 2012-07-09 06:31:43

几天后,我做了更多的研究。原来,我的客户机使用的服务器只支持PHP5.1,而json_encode只支持5.1。我找到了这个很棒的脚本来让它工作。http://www.boutell.com/scripts/jsonwrapper.html

谢谢你的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11361262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档