<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 類別的程式碼