php - 使用ajax从数据库加载详细信息

标签 php mysql ajax

我正在尝试一些非常简单的方法,但无法使其正常工作,我也不知道为什么。我正在尝试从数据库加载引导模式窗口的详细信息,以便我可以编辑它们。我的按钮看起来像

<button onclick="GetUserDetails('.$row['row_id'].')" class="btn btn-warning">Update</button>

然后这是应该加载数据的 php 部分

include("../../misc/database.inc.php");


error_reporting(E_ALL); 
ini_set('display_errors', 1);
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

if(isset($_POST['row_id']) && isset($_POST['row_id']) != "") {

    $row_id = $_POST['row_id'];                 
    $value = $pdo->prepare('SELECT row_id, row_content, row_email FROM excel_table WHERE row_id =  ?'); 
    $value->bindParam(1, $id, PDO::PARAM_INT);
    $value->execute();

    $response = array();

    if($value->rowCount() > 0){
         while ($rs = $value->fetch(PDO::FETCH_ASSOC)) {
             $response = $row;

         }                  
    }
    else
    {
        $response['status'] = 200;
        $response['message'] = "Data not found!";
    }   
    echo json_encode($response);
    //var_dump($_POST['row_id']); // return correct id
} 

在控制台->网络上我看到正确的响应

{"row_id":"1","row_content":"asd","row_email":"sad"}

这是加载数据的js部分

function GetUserDetails(row_id) {

    $("#row_id").val(row_id);
    $.post("ajax/readUserDetails.php", {
            row_id: row_id
        },
        function (data, status) {
            // PARSE json data
            var excel_table = JSON.parse(data);
            // Assing existing values to the modal popup fields
            $("#row_content").val(excel_table.row_content);
            $("#row_email").val(excel_table.row_email);
        }
    );
    // Open modal popup
    $("#update_user_modal").modal("show");
}

这是我的模态

<div class="modal fade" id="update_user_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">Update</h4>
            </div>
            <div class="modal-body">

                <div class="form-group">
                    <label for="row_content">Desc</label>
                    <input type="text" id="row_content" placeholder="Описание" class="form-control"/>
                </div>

                <div class="form-group">
                    <label for="row_email">Email</label>
                    <input type="text" id="row_email" placeholder="Email" class="form-control"/>
                </div>

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                <button type="button" class="btn btn-primary" onclick="UpdateUserDetails()" >Save Changes</button>
                <input type="hidden" id="row_id">
            </div>
        </div>
    </div>
</div>

谁能告诉我为什么模态没有填充数据?

最佳答案

我猜你需要在 ajax 异步调用结束后显示模式。

function GetUserDetails(row_id) {

    $("#row_id").val(row_id);
    $.post("ajax/readUserDetails.php", {
            row_id: row_id
        },
        function (data, status) {
            // PARSE json data
            var excel_table = JSON.parse(data);
            // Assing existing values to the modal popup fields

            //add console.log to make sure you have some value
            console.log('row_content: ' + excel_table.row_content);

            $("#row_content").val(excel_table.row_content);
            $("#row_email").val(excel_table.row_email);

            // then add another to make sure you update it correctly.
            console.log('#row_content: ' + $("#row_content").val());

           // Open modal popup AFTER YOU UPDATE 
           $("#update_user_modal").modal("show");
        }
    );     
}

关于php - 使用ajax从数据库加载详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40658000/

相关文章:

mysql - 为什么这个 MySQL 更新不起作用?

jquery - WordPress中ajax加载页面后如何触发jquery插件?

c# - AJAX 调用被阻止

javascript - jQuery Ajax 通过多个复选框检查将数据存储到数据库

php - Laravel - 模型类,覆盖主要方法

php - 执行创建 "MySQL server has gone away"错误

Internet Explorer 中的 jquery ajax 发布错误

php - 在不替换 PHP 中的 html 实体的情况下获取 xml 子项

php - 如何在 querybuilder where 子句中使用子字符串

mysql - 通用 SQL/MySQL 将行转换为列