duancoubeng5909 2018-04-16 20:26
浏览 45
已采纳

调用Ajax后,数据表无法重新加载

After my Ajax call is successful, I want to reload my bootstrap-table with the new values that return from my php part.

<table id="gelirtableid" data-toggle="table" data-url="gelir-getdata.php" data-classes="table table-hover" data-striped="true"
                        data-pagination="true" data-page-list=[20, 40, 75, 100] data-search="true">
                            <thead>
                                <tr >
                                    <th data-sortable="true" data-field="tarih">Tarih</th>
                                    <th data-sortable="true" data-field="Toplam">Toplam</th>                                    
                                </tr>
                            </thead>
</table>

my php script that fetches data from mysql

<?php 
include "dbcon.php";
if($_POST["gelirtablosecimi"]){
        $gelirtabloadi = $_POST["gelirtablosecimi"];
        $_SESSION["gelirtabloadi"] = $gelirtabloadi;
}

$gelirtabloadi = $_SESSION["gelirtabloadi"];
$gelirgunluktoplam = $db->prepare("select tarih, hasilat + visa + butce_ici + hisse_satis + sosyal_konut + elektrik + haberlesme + iller_bank + diger AS Toplam from $gelirtabloadi");
$gelirgunluktoplam->execute();
$results = $gelirgunluktoplam->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($results);
echo $json;

 ?>

and my Ajax call

$("#gelirgetir").click(function() {
                    var gelirtablosecimi = $("#select1").val();
                    if (gelirtablosecimi) {
                        $.ajax({
                            type: "POST",
                            url: "gelir-getdata.php",
                            data: {
                                "gelirtablosecimi": gelirtablosecimi
                            },
                            success: function(result) {                                                                
                                notifyUser('success', 'Başarılı!', 'Tablo başarıyla güncellendi');
                                location.reload();
                            },
                            error: function(result) {
                                notifyUser('error', 'Hata', 'error');
                            }
                        });
                    } else {
                        notifyUser('info', 'Dikkat', 'Tablo seçimi yapmadınız!');
                    }

                });

I'm new with Ajax calls, probably the problem is with my ajax part. As you see, I'm dealing with location.reload(); after the call is successful. I tried reload .container and #gelirtableid but nothing worked for me. Basically, when I press the #gelirgetir button, it updates one of my session values and my table depends on that session value. After the session value changes and if I reload the page, new values show up but I have to force-refresh the page. I only want to refresh the table. Any suggestion?

  • 写回答

2条回答 默认 最新

  • drtohng5613 2018-04-17 04:10
    关注

    The error when i get from above solution is about JSON.parse(). $.each expects parse the JSON data. Following codes are working like charm.

    <table id="gelirtableid" data-toggle="table" data-url="gelir-getdata.php" data-classes="table table-hover" data-striped="true"
                                data-pagination="true" data-page-list=[20, 40, 75, 100] data-search="true">
                                    <thead>
                                        <tr >
                                            <th data-sortable="true" data-field="tarih">Tarih</th>
                                            <th data-sortable="true" data-field="Toplam">Toplam</th>                                    
                                        </tr>
                                    </thead>
    </table>
    

    Ajax call:

    $("#gelirgetir").click(function() {
                        var gelirtablosecimi = $("#select1").val();
                        if (gelirtablosecimi) {
                            $.ajax({
                                type: "POST",
                                url: "gelir-getdata.php",
                                data: {
                                    "gelirtablosecimi": gelirtablosecimi
                                },
                                success: function(result) {
                                    var content = '';
                                        var obj = JSON.parse(result);
                                        $.each(obj, function(i, data) {                                        
                                            content += '<tr>';
                                            content += '<td>'+obj[i].tarih+'</td>';
                                            content += '<td>'+obj[i].Toplam+'</td>';
                                            content += '</tr>';
                                        });
    
                                        $('#gelirtableid tbody').html(content);                                                             
                                    notifyUser('success', 'Başarılı!', 'Tablo başarıyla güncellendi');                                
                                },
                                error: function(result) {
                                    notifyUser('error', 'Hata', 'error');
                                }
                            });
                        } else {
                            notifyUser('info', 'Dikkat', 'Tablo seçimi yapmadınız!');
                        }
    
                    });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。