首頁  >  文章  >  後端開發  >  ajax-傳回值 - php傳回json資料的demo如下,請問是什麼原因導致該問題?

ajax-傳回值 - php傳回json資料的demo如下,請問是什麼原因導致該問題?

WBOY
WBOY原創
2016-09-12 17:44:45981瀏覽

<code><?php
// Include ezSQL core
include_once('../include/ez_sql_core.php');

// Include ezSQL database specific component
include_once('../include/ez_sql_postgresql.php');
$username='';
$password='';
$result='';
if(!empty($_POST)){
    $username = $_POST["username"];
    $password = $_POST["password"];
}else{
    
}

$db = new ezSQL_postgresql('i2soft', 'i2s@Shanghai', 'sdata', '127.0.0.1');


///$user = $db->query("select id from user2 where name = 'admin' and password ='admin'");
//$user_details = $db->get_row(null, OBJECT, 0);
//var_dump($user_details) ;

$sql = sprintf("select * from user2 where name='%s' and password='%s'",$username,$password);
//echo $sql;
//select * from user2 where name='admin' and password='admin'
$user=$db->get_results($sql);

//var_dump($user);
//array(1) { [0]=> object(stdClass)#5 (3) { ["id"]=> string(1) "1" ["name"]=> string(5) "admin" ["password"]=> string(5) "admin" } }
if($user){
  $result='0';
   
}else{
   $result='-1';
  
}

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>

</code>

php回傳json數據,若含有

<code>$user=$db->get_results($sql);  </code>

這行程式碼ajax就回傳error。

若去掉這行程式碼,則ajax結果是success
這行程式碼是沒問題的,回傳的資料我印過,註解的那個陣列就是列印出來,我不用ajax請求伺服器程式碼的話,直接提交表單的時候測過代碼。

html程式碼如下:

<code><!DOCTYPE html>
<html lang="zh-CN">

    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">
        <link rel="icon" href="../media/image/favicon.ico">
        <title>英方I2Active</title>
        <!-- Bootstrap core CSS -->
        <link href="../media/bootstrap/css/bootstrap.min.css" rel="stylesheet">
        <!-- Custom styles for this template -->
        <link href="../media/css/login.css" rel="stylesheet">
        <script type="text/javascript" src="../media/js/jquery-1.9.1.js"></script>
    </head>

    <body>
        <div class="container">
            <form class="form-signin" role="form" action="">
                <img src="../media/image/logo.png" />
                <h2 class="form-signin-heading">I2Active登录</h2>
                <input  id="username" type="text" class="form-control" placeholder="User name" required autofocus >
                <input id="password" type="password" class="form-control" placeholder="Password" required>
                <div class="checkbox">
                    <label>
                        <input type="checkbox" value="remember-me"> 记住密码
                    </label>
                </div>
                <button id="login" class="btn btn-lg btn-primary btn-block" >登录</button>
            </form>
        </div>
        <!-- /container -->
        <script type="text/javascript">  
            
            $("#login").click(function () {
                var username = $("#username").val();
                var password = $("#password").val();
                if(username&&password){
                    $.ajax({
                        url: '../controller/login2.php', // 跳转到 action  
                        data: {
                            'username': username,
                            'password': password
                        },
                        type: 'post',
                        cache: false,
                        dataType: 'json',
                        success: function (data) {
                            alert('ajax success');
                        },
                        error: function () {
                          alert('ajax error');
                        }
                    })
                }
            });
        
        </script>
    </body>

</html></code>

回覆內容:

<code><?php
// Include ezSQL core
include_once('../include/ez_sql_core.php');

// Include ezSQL database specific component
include_once('../include/ez_sql_postgresql.php');
$username='';
$password='';
$result='';
if(!empty($_POST)){
    $username = $_POST["username"];
    $password = $_POST["password"];
}else{
    
}

$db = new ezSQL_postgresql('i2soft', 'i2s@Shanghai', 'sdata', '127.0.0.1');


///$user = $db->query("select id from user2 where name = 'admin' and password ='admin'");
//$user_details = $db->get_row(null, OBJECT, 0);
//var_dump($user_details) ;

$sql = sprintf("select * from user2 where name='%s' and password='%s'",$username,$password);
//echo $sql;
//select * from user2 where name='admin' and password='admin'
$user=$db->get_results($sql);

//var_dump($user);
//array(1) { [0]=> object(stdClass)#5 (3) { ["id"]=> string(1) "1" ["name"]=> string(5) "admin" ["password"]=> string(5) "admin" } }
if($user){
  $result='0';
   
}else{
   $result='-1';
  
}

$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>

</code>

php回傳json數據,若含有

<code>$user=$db->get_results($sql);  </code>

這行程式碼ajax就回傳error。

若去掉這行程式碼,則ajax結果是success
這行程式碼是沒問題的,回傳的資料我印過,註解的那個陣列就是列印出來,我不用ajax請求伺服器程式碼的話,直接提交表單的時候測過代碼。

html程式碼如下:

<code><!DOCTYPE html>
<html lang="zh-CN">

    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">
        <link rel="icon" href="../media/image/favicon.ico">
        <title>英方I2Active</title>
        <!-- Bootstrap core CSS -->
        <link href="../media/bootstrap/css/bootstrap.min.css" rel="stylesheet">
        <!-- Custom styles for this template -->
        <link href="../media/css/login.css" rel="stylesheet">
        <script type="text/javascript" src="../media/js/jquery-1.9.1.js"></script>
    </head>

    <body>
        <div class="container">
            <form class="form-signin" role="form" action="">
                <img src="../media/image/logo.png" />
                <h2 class="form-signin-heading">I2Active登录</h2>
                <input  id="username" type="text" class="form-control" placeholder="User name" required autofocus >
                <input id="password" type="password" class="form-control" placeholder="Password" required>
                <div class="checkbox">
                    <label>
                        <input type="checkbox" value="remember-me"> 记住密码
                    </label>
                </div>
                <button id="login" class="btn btn-lg btn-primary btn-block" >登录</button>
            </form>
        </div>
        <!-- /container -->
        <script type="text/javascript">  
            
            $("#login").click(function () {
                var username = $("#username").val();
                var password = $("#password").val();
                if(username&&password){
                    $.ajax({
                        url: '../controller/login2.php', // 跳转到 action  
                        data: {
                            'username': username,
                            'password': password
                        },
                        type: 'post',
                        cache: false,
                        dataType: 'json',
                        success: function (data) {
                            alert('ajax success');
                        },
                        error: function () {
                          alert('ajax error');
                        }
                    })
                }
            });
        
        </script>
    </body>

</html></code>

SQL執行出錯了,PHP拋出錯誤,建議你用網頁瀏覽器直接訪問看看原因

看一下 ezSQL_postgresql 類別的程式碼

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn