Php 使用ajax从数据库加载
我运行的每个类型都会调用error:OnError函数,我不明白为什么它不调用success:OnSuccess JS:Php 使用ajax从数据库加载,php,jquery,ajax,Php,Jquery,Ajax,我运行的每个类型都会调用error:OnError函数,我不明白为什么它不调用success:OnSuccess JS: $(document).ready(function () { // retreving data on button click $("#data-submit").click(LoadDataThroughAjaxCall); //loading screen function
$(document).ready(function () {
// retreving data on button click
$("#data-submit").click(LoadDataThroughAjaxCall);
//loading screen functionality - this part is additional - start
$("#divTable").ajaxStart(OnAjaxStart);
$("#divTable").ajaxError(OnAjaxError);
$("#divTable").ajaxSuccess(OnAjaxSuccess);
$("#divTable").ajaxStop(OnAjaxStop);
$("#divTable").ajaxComplete(OnAjaxComplete);
//loading screen functionality - this part is additional - end
});
// ajax call
function LoadDataThroughAjaxCall() {
$.ajax({
type: "POST",
url: "Ajax/dataloader.php",
data: '{}',
dataType: "json",
success: OnSuccess,
failure: OnFailure,
error: OnError
});
// this avoids page refresh on button click
return false;
}
// on sucess get the xml
function OnSuccess(response) {
//debugger;
var xmlDoc = $.parseXML(response.d);
var xml = $(xmlDoc);
var tweets = xml.find("Table");
showOnATable(tweets);
}
// show data on a table
function showOnATable(tweets) {
//debugger;
var headers = [];
var rows = [];
// header section
headers.push("<tr>");
headers.push("<td><b>tweets</b></td>");
headers.push("<td><b>created</b></td>");
headers.push("<td><b>source</b></td>");
headers.push("</tr>");
// rows section
$.each(tweets, function () {
var tweets = $(this);
rows.push("<tr>");
rows.push("<td>" + $(this).find("tweet_text").text() + "</td>");
rows.push("<td>" + $(this).find("created_at").text() + "</td>");
rows.push("<td>" + $(this).find("source").text() + "</td>");
rows.push("</tr>");
});
var top = "<table class='gridtable'>";
var bottom = "</table>";
var table = top + headers.join("") + rows.join("") + bottom;
$("#divTable").empty();
$("#divTable").html(table);
}
// loading screen functionality functions - this part is additional - start
function OnAjaxStart() {
//debugger;
//alert('Starting...');
$("#divLoading").css("display", "block");
}
function OnFailure(response) {
//debugger;
alert('Failure!!!' + '<br/>' + response.reponseText);
}
function OnError(response) {
//debugger;
var errorText = response.responseText;
alert('Error!!!' + '\n\n' + errorText);
}
function OnAjaxError() {
//debugger;
alert('Error!!!');
}
function OnAjaxSuccess() {
//debugger;
//alert('Sucess!!!');
$("#divLoading").css("display", "none");
}
function OnAjaxStop() {
//debugger;
//alert('Stop!!!');
$("#divLoading").css("display", "none");
}
function OnAjaxComplete() {
//debugger;
//alert('Completed!!!');
$("#divLoading").css("display", "none");
}
$(文档).ready(函数(){
//点击按钮重新修改数据
$(“#数据提交”)。单击(LoadDataThroughAjaxCall);
//加载屏幕功能-此部分是附加的-开始
$(“#divTable”).ajaxStart(OnAjaxStart);
$(“#divTable”).ajaxError(OnAjaxError);
$(“#divTable”).ajaxSuccess(OnAjaxSuccess);
$(“#divTable”).ajaxStop(OnAjaxStop);
$(“#divTable”).ajaxComplete(OnAjaxComplete);
//加载屏幕功能-此部分为附加部分-结束
});
//ajax调用
函数LoadDataThroughAjaxCall(){
$.ajax({
类型:“POST”,
url:“Ajax/dataloader.php”,
数据:“{}”,
数据类型:“json”,
成功:一旦成功,
失败:一次失败,
错误:OnError
});
//这样可以避免在单击按钮时刷新页面
返回false;
}
//成功获取xml
函数OnSuccess(响应){
//调试器;
var xmlDoc=$.parseXML(response.d);
var xml=$(xmlDoc);
var tweets=xml.find(“表”);
可显示(推特);
}
//在表格上显示数据
功能可显示(tweets){
//调试器;
var头=[];
var行=[];
//标题部分
标题。按(“”);
标题。推送(“推文”);
标题。推送(“创建”);
标题。推送(“源”);
标题。按(“”);
//行段
$.each(推文、函数(){
var tweets=$(这);
行。按(“”);
rows.push(“+$(this.find”(“tweet_text”).text()+”);
rows.push(“+$(this.find)(“created_at”).text()+”);
rows.push(“+$(this).find(“source”).text()+”;
行。按(“”);
});
var top=“”;
var bottom=“”;
var table=top+headers.join(“”)和rows.join(“”)和bottom;
$(“#divTable”).empty();
$(“#divTable”).html(表格);
}
//加载屏幕功能-此部分是附加的-启动
函数启动(){
//调试器;
//警报('开始…');
$(“#divload”).css(“显示”、“块”);
}
功能失效(响应){
//调试器;
警报('Failure!!!'+'
'+response.reponsext);
}
函数OnError(响应){
//调试器;
var errorText=response.responseText;
警报('Error!!!'+'\n\n'+errorText);
}
函数OnAjaxError(){
//调试器;
警报('Error!!!');
}
函数OnAjaxSuccess(){
//调试器;
//警惕(“成功!!!”);
$(“#divload”).css(“显示”、“无”);
}
函数OnAjaxStop(){
//调试器;
//警惕(‘停止!!!’);
$(“#divload”).css(“显示”、“无”);
}
函数名为complete(){
//调试器;
//警报(‘已完成!!!’);
$(“#divload”).css(“显示”、“无”);
}
PHP:
<?php
//if(isset($_POST['data'])==true&&empty($_POST['data'])==false){
require_once('../connection.php');
function clean($str)
{
if(get_magic_quotes_gpc())
{
$str= stripslashes($str);
}
return str_replace("'", "''", $str);
}
//Sanitize the POST values
//$username = clean($_POST['data']);
//$result=sqlsrv_query($conn,"execute sp_ORDER_BY_name '$username'");
$result=sqlsrv_query($conn,"select tweet_text,source from tweets");
if($result) {
if(sqlsrv_has_rows($result) > 0) {
//Login Successful
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC) ) {
echo $row['tweet_text'].", ".$row['source']."<br />";
}
}else {
//Login failed
echo 'Name not found';
}
}
//}
?>
您必须从php
响应ajson
,比如
if(sqlsrv_has_rows($result) > 0) {
//Login Successful
$xml='<Table>';
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC) ) {
$xml.='<tweet_text>'.$row['tweet_text'].'</tweet_text>';
$xml.='<source>'.$row['source'].'</source>';
// create xml tag for created_at
}
$xml.='</Table>';
echo json_encode(array('d'=>$xml));
return TRUE;
} else {
//Login failed
echo json_encode(array('d'=>'Name not found'));
}
if(sqlsrv_有_行($result)>0){
//登录成功
$xml='';
而($row=sqlsrv\u fetch\u数组($result,sqlsrv\u fetch\u ASSOC)){
$xml.=''.$row['tweet_text'].';
$xml.=''.$row['source'].';
//为在上创建的\u创建xml标记
}
$xml.='';
echo json_编码(数组('d'=>$xml));
返回TRUE;
}否则{
//登录失败
echo json_编码(数组('d'=>'Name not found');
}
firebug控制台中是否有任何错误?查看网络选项卡以查看请求是否实际通过,如果是,返回了什么?您两小时前问了这个问题。@r3wt因此编写了不同的问题。感谢您修复了错误,但现在$xml返回空值。检查是否得到$result?我得到的是'd'=>{$xml}
if(sqlsrv_has_rows($result) > 0) {
//Login Successful
$xml='<Table>';
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC) ) {
$xml.='<tweet_text>'.$row['tweet_text'].'</tweet_text>';
$xml.='<source>'.$row['source'].'</source>';
// create xml tag for created_at
}
$xml.='</Table>';
echo json_encode(array('d'=>$xml));
return TRUE;
} else {
//Login failed
echo json_encode(array('d'=>'Name not found'));
}