即使PHP和JS文件独立工作,AJAX调用也无法正常工作

我有一个AJAX调用设置.我通过警告我发送的POST值(甚至警告POST数据字符串)测试了JS文件,一切看起来都很好.然后我获取这些值并将它们放在需要它们的PHP文件中.我试图在没有任何变量的情况下尽可能简单地复制过程.它工作正常.然后我尝试运行AJAX函数,它给了我错误信息.这是我的JS代码(我之前声明了page_number和类型变量,但它没有相关性;我已经提醒那些并且变量被正确分配):

$('.pagination_button').click(function(){

    //MAKE AJAX CALL TO REPOPULATE TABLE
    var myData = 'page_number='+ page_number + '&type='+ type;

            $.ajax({
                type: 'POST', // HTTP method POST or GET
                url: 'archive_ajax.PHP', //Where to make Ajax calls
                dataType:'text', // Data type, HTML, json etc.
                data:myData, //post variables
                success:function(response){

                //REFORMAT UPON SUCCESSFUL AJAX CALL
                $(this).parent().find('span.page_counter').text(next_page);
                $(this).closest('.archive_table').append(response);*/


                },
                error:function (xhr, ajaxOptions, thrownError){
                    alert('didn\'t work'); //throw any errors
                }
            }); 
});

这是服务器端代码.我用变量自己运行这个页面,它显示正确的一切:

<?PHP
include('../includes/connect.PHP');

$page_number = MysqLi_real_escape_string($_POST['page_number']);
$type = MysqLi_real_escape_string($_POST['type']);

$start_number = $page_number*10;

if($type=="pagination_1"){
$type = "archive_1";
}
else if($type=="pagination_2"){
$type = "archive_2";
}
else if($type=="pagination_3"){
$type = "archive_3";
}

$sql = "SELECT * FROM ".$type." ORDER BY timestamp ASC LIMIT ".$start_number.", 10";
$result = $MysqLi->query($sql);

while($row = MysqLi_fetch_array($result)){
$converted = date('m/d/y', strtotime($row['timestamp']));
echo "<tr class='table_data' style='float:left;'>
<td>".$converted."</td>
</tr>";
}

?>

在实际将信息发送到服务器时,我似乎无法找到所有故障.任何帮助将不胜感激.谢谢!

编辑

我得到的(对于那些要求)是它从错误功能警告“没有工作”.当我提醒’thrownError’时,它只是说’未找到’.我假设这意味着它没有成功运行查询(我不知道为什么).

解决方法:

在success-callback内部没有引用clicked元素,它包含$.ajax-call的选项.

创建一个闭包以访问success-callback中单击的元素.

$('.pagination_button').click(function(){
  var that = this
  $.ajax({
           success:function(response){
                   //use here $(that) instead of $(this)
                   }
        }); 
});

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...