Php 使用ajax从数据库加载

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

我运行的每个类型都会调用error:OnError函数,我不明白为什么它不调用success:OnSuccess

JS:

$(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
响应
a
json
,比如

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'));
}