【问题标题】:jQuery + php How do I return multiple values in my data object?jQuery + php 如何在我的数据对象中返回多个值?
【发布时间】:2012-07-09 15:38:39
【问题描述】:

我的简单 jquery 和 php reg/login 脚本正在工作。基本上,如果用户的姓名和通行证在数据库中,则 php 会回显 true,而在我的 javascript 中我有

我想将用户名传回我的 javascript 并将其保存在变量中,我该怎么做?

我想我可以在我的 php 中做这样的事情:

json_encode(array("boolean" => "true", "username" => '$username'));

但是如何在我的 jQuery 中处理它呢?

$('#login').click(function(e){
      $.get("login.php",{username: $("#username").val(), password: $("#password").val()},function(data){
         if(data == "true"){

            alert("Logged in");
            $('#logindiv').slideUp();
            $('#gamediv').show(); 
            $('#registerdiv').hide();
            $('#gameheader').html(userloggedin);
         }else{
            alert("Not Logged in");
         }
      });
});

编辑: 登录.php

if (isset($_GET['username'])&& isset($_GET['password'])) {
$username = $_GET['username'];
    $password = $_GET['password'];

$sql = mysql_query("SELECT * FROM members WHERE username='$username' AND password='$password'") or die(mysql_error()); 

       // Get member ID into a session variable
        $id = $row["id"];   
        session_register('id'); 
        $_SESSION['id'] = $id;
        // Get member username into a session variable
        $username = $row["username"];   
        session_register('username'); 
        $_SESSION['username'] = $username;
        $json = array("boolean" => "true", "username" => $username);

        echo(json_encode($json));
        //exit();

} else {
    echo "false";
}

main.html ...

$('#login').click(function(e){
      $.getJSON("login.php",{username: $("#username").val(), password: $("#password").val()},function(data){
         if(data.username!==undefined){
            alert(data.username);
            $('#logindiv').slideUp();
            $('#gamediv').show(); 
            $('#registerdiv').hide();
            $('#gameheader').html(data['username']);
         }else{

         }
      });
});

【问题讨论】:

标签: php javascript jquery mysql json


【解决方案1】:

用户名将在 $.get 返回的数据对象中:

 $.get('login.php',params, function(data){
     if(data){
         alert(data.username); // that's the value from php
     }
 }

你可以对值做很多检查:

    ... 
    if(data.username) // username isn't empty string, null, undefined
    if(data.username!==undefined) // if you got it at all 

【讨论】:

  • data.username 返回未定义,不知道为什么
  • 您的服务器是否收到 200 响应?检查 Web 控制台(Chrome 中的 F12)并在网络下查看您的服务器发回的内容。
  • 使用 console.log(data) 我看到它正确地返回了“boolean”的值,但用户名是空的。 $json = array("boolean" => "true", "username" => $username);
  • 我发现了我的问题。出于某种原因,我的代码中有这个: $username = $row["username"];这是重置 $username 的值
【解决方案2】:

使用 .getJSON():http://api.jquery.com/jQuery.getJSON/

那就用

data.username

【讨论】:

  • 当我执行 alert(data.username); 时,我得到一个 null 的返回值; (如上所示编辑)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 2019-11-16
  • 2013-08-18
  • 1970-01-01
  • 2018-02-10
相关资源
最近更新 更多