php AJAX 调用成功后,DataTables搜索框不起作用

uttx8gqw  于 2023-02-07  发布在  PHP
关注(0)|答案(3)|浏览(133)

我正在做一个包含php,js,jquery,数据表的项目。

我正在发送post调用到一个PHP页面来改变我的表数据,它运行的很成功,正如你所看到的。在这个调用之后,我奇怪的不能使用我的数据表搜索功能。可能是错误是关于$(".gunlukgelir").load(" .gunlukgelir");的,当Ajax调用成功时,我用.gunlukgelir类名刷新了表。
图书馆:

https://cdn.datatables.net/1.10.16/css/dataTables.bootstrap.min.css
https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js
https://cdn.datatables.net/1.10.16/js/dataTables.bootstrap.min.js
https://code.jquery.com/jquery-3.3.1.min.js

我Ajax调用:

$(function() {
  $("#gelirgetir").click(function() {
    var gelirtablosecimi = $("#select1").val();
    if (gelirtablosecimi) {
      $.ajax({
        type: "POST",
        url: "tabloyenile.php",
        data: {
          "gelirtablosecimi": gelirtablosecimi
        },
        success: function(result) {
          $(".gunlukgelir").load(" .gunlukgelir");
          //$(".gunlukgelir").load(window.location + " .gunlukgelir");
          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!');
    }

  });

HTML部分:

<div class="form-group col-xs-6">

  <select id="select1" class="selectpicker" data-live-search="true" title="Gelirler">
    <?php echo $geliroptions;?>
  </select>
  <input type="submit" id="gelirgetir" value="Getir" class="btn btn-success" />

  <h1>Aylık Gelir Raporları</h1>
  <table id="" class="display table table-stripe table-hover table-row-border table-order-column table-nowrap gunlukgelir">
    <thead>
      <tr>
        <th>Tarih</th>
        <th>Günlük Toplam</th>
      </tr>
    </thead>
    <?php
    $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();
    while($row = $gelirgunluktoplam->fetch()){
     echo '
      <tr>
        <td>'.$row["tarih"].'</td>  
        <td>'.$row["Toplam"].'</td>                                    
      </tr>
     ';
    }
    ?>
  </table>
</div>

和Ajax调用的PHP:

<?php
  session_start();
  if($_POST['gelirtablosecimi'] && $_POST['gidertablosecimi']){
    $gidertabloadi = $_POST["gidertablosecimi"];
    $gelirtabloadi = $_POST["gelirtablosecimi"];
    $_SESSION["gelirtabloadi"] = $gelirtabloadi;
    $_SESSION["gidertabloadi"] = $gidertabloadi;
  }
  if($_POST["gelirtablosecimi"]){
    $gelirtabloadi = $_POST["gelirtablosecimi"];
    $_SESSION["gelirtabloadi"] = $gelirtabloadi;
  }
  if($_POST['gidertablosecimi']){
    $gidertabloadi = $_POST["gidertablosecimi"];
    $_SESSION["gidertabloadi"] = $gidertabloadi;
  }
?>

有什么建议吗?先谢了!

6ss1mwsb

6ss1mwsb1#

我也遇到过这样的问题,把数据赋给数据表后,在 AJAX 的success函数中添加.DataTable()即可。
它一直在为我工作。
就写如下:

function TaxLoad() {
    $.ajax({
        url:"myCode.php",
        type:"POST",
        data:{functionName:"showTax"},
        success:function(data) {
            $("#tblTaxBody").html(data);
            var table= $("#dtTable").DataTable();
        }
    });
}`
uoifb46i

uoifb46i2#

可能this issue与我在文档中的问题有关。如果重新初始化,它将是searching: false。无论如何,如果有一天有人看到这个问题,只需将您的表选择更改为Bootstrap-Table。它更稳定。

ar7v8xwq

ar7v8xwq3#

嘿,很容易把你的数据表插件Js文件放进** AJAX 调用的PHP中**
文件中的库:** AJAX 调用的PHP**

相关问题