Ajax调用不填充表

时间:2016-11-30 05:03:40

标签: php ajax database asynchronous

我试图使用所谓的使用Ajax异步更新网站部分的现代方法来填充我的表。到目前为止,我已经设法使用纯php填充表格。这是代码。提前感谢您提示解决此问题!

AngularFire

这是php_dbrequests \ php_requests.php

中的代码
function showUsersBasic(){
$.ajax({
        url: 'php_dbrequests\php_requests.php',
        type:'POST',
        dataType: 'json',
        success: function(output_string){
                $('#db-table-users').append(output_string);
            } // End of success function of ajax form
        }); // End of ajax call    }

我知道我得到了非常基本的覆盖:我的数据库连接成功,调用ajax函数的按钮有效。我仔细检查了我对表的引用。请,任何提示将非常感谢!

5 个答案:

答案 0 :(得分:1)

你需要修改你的php代码以返回一个包含某些键的数组,例如data并且不要返回table,因为你的html中已经有table。所以只需使用填充数据返回tr

<?php
require 'database.php';
$sql = "SELECT id, email, regdate FROM users";
$records = $conn->prepare( $sql );
$records->execute();
$results = $records->fetchAll( PDO::FETCH_ASSOC );
    $output_string = '';
    #$output_string .=  '<table>';
    $output_string .= '<tr>';
    $output_string .= '<th>ID</th>';
    $output_string .= '<th>Email</th>';
    $output_string .= '<th>Register Date</th>';
    $output_string .= '</tr>';
foreach( $results as $row ){
    $output_string .=  "<tr><td>";
    $output_string .=  $row['id'];
    $output_string .=  "</td><td>";
    $output_string .=  $row['email'];
    $output_string .=  "</td><td>";
    $output_string .=  $row['regdate'];
    $output_string .=  "</td><td>";
    $output_string .=  "</td>";
    $output_string .=  "</tr>";
}
    #$output_string .= '</table>';
echo json_encode(array('data'=>$output_string) );?>

然后将您的ajax代码修改为:

function showUsersBasic(){

            console.info('showUserBasic called');  

  $.ajax({
    url: 'php_dbrequests\php_requests.php',
    type:'POST',
    dataType: 'json',
    success: function(output_string){
            //OPEN FIREFOX FIREBUG EXTENSION & check console and click the ajax request to see its response
            console.log(output_string);           

            $('#db-table-users').append(output_string.data);
        } // End of success function of ajax form
    }); // End of ajax call   
 }

答案 1 :(得分:0)

请使用$.get()函数使用ajax获取PHP数据。

function showUsersBasic() {
    $.get("php_dbrequests\php_requests.php", function(output_string, status){
        $('#db-table-users').append(output_string);
    });
 }

答案 2 :(得分:0)

这里失败了什么?我们能获得更多背景吗?仔细检查你的选择器(class vs. id)

使用开发工具确保您在ajax调用中获得响应 - 或 - 将alert(response);添加到您的成功函数中。

*卫生署! - 尝试提醒响应。如果一切正常,你应该在这里看到你的PHP脚本的回复。

答案 3 :(得分:0)

试试这段代码:

success: function(response){
                $('#db-table-users').append(response.output_string);
            } // End of success function of ajax form
        }); // End of ajax call    }

答案 4 :(得分:0)

我相信你应该从你的ajax调用代码中删除参数“dataType”。你期待JSON,但它返回html。您还需要从php中的echo中删除json_encode()