在onselect之后使用jquery + ajax用获取的数据填充表

时间:2018-10-11 13:48:25

标签: php jquery ajax

我正在尝试使用从数据库中通过选定选项的ID提取的数据填充表格。当用户选择其他选项时,表内容必须更改。选择的插件工作正常,并且选择选项填充了正确的值,如何在查询中将test.php的var selektas赋予loader.php,其中kliento_id = $ idofclient? 以某种方式使selektas == $ idofclient,以便我可以在loader.php中的查询中使用此变量

我的test.php:

<script type="text/javascript">
    $(document).ready(function () {
        $('.chosen-select').chosen();
    }); 
</script>

<script type="text/javascript">
    $(document).ready(function(){ 
        $("#.pavadinimai").on("change",function(){ 
          var selektas = $(this).val().split('|');
            $.ajax({ 
                type: "POST", 
                url: "loader.php", 
                data: {selektas[o]}, 
                success: function(result){ 
                    $("#show").html(result); 
                    $('#show').dataTable().fnDestroy(); 
                    $('#show').dataTable();
                }
            });
        });
    });
</script>

    <select class="chosen-select" name="pavname" id="pavadinimai">
        <option selected="selected" value = "">---Pasirinkti---</option>
    <?php

    echo "Pasirinkite klienta"; 
    $sql = "SELECT id, kliento_pav FROM klientai";   
    $stmt = mysqli_query($link, $sql);
    while ($row = mysqli_fetch_assoc($stmt)) {
        echo "<option value='" . $row['id'] .'|'. $row['kliento_pav'] . "'>" . $row['kliento_pav'] . "</option>";
    } 
    list($idofclient,$pavofclient) = explode ('|',$_POST['pavname']); 
?>
</select>
<div id="show">
     </div>

这是我在loader.php中的代码

<?php  
require_once "config.php";
if(isset($_POST["pavadinimas"])){  
    $sql_query="SELECT uzsakymai.id, kliento_id, uzsakymai.kiekis,prekes.pavadinimas,uzsakymai.aprasymas FROM uzsakymai INNER JOIN prekes ON uzsakymai.prekes_id = prekes.id INNER JOIN klientai on uzsakymai.kliento_id = klientai.id WHERE kliento_id = $idofclient"
    $resultset = mysqli_query($link, $sql_query) or die("database error:". mysqli_error($link));              
    while( $result = mysqli_fetch_assoc($resultset) ) {
?>
<br>
<table id="data_table" class="table table-striped">
    <thead>
        <tr>
            <th>Prekės pavadinimas</th>
            <th>Kiekis</th>
            <th>Aprašymas</th>
        </tr>
    </thead>
    <tbody>
        <tr id="<?php echo $result ['id']; ?>">
            <td><?php echo $result ['pavadinimas']; ?></td>
            <td><?php echo $result ['kiekis']; ?></td>
            <td><?php echo $result ['aprasymas']; ?></td>
        </tr>
    </tbody>
</table>
 <?php } ?>
 <?php
 echo $result
 }
 ?>

我正在使用... jquery / 3.1.1 / jquery.min.js

2 个答案:

答案 0 :(得分:0)

尝试一下 最初,您初始化了表,所以首先清除该表 $('#myTable')。dataTable()。fnDestroy(); 然后在ajax成功后再次初始化 $('#myTable')。dataTable(); 这样.....

$(document).ready(function(){ 
$("#.pavadinimai").on("change",function(){ 
  $.ajax({ 
    type: "POST", 
    url: "loader.php", 
    data: {$idofclient}, 
    success: function(result){ 
      $("#show").html(result); 
     $('#show').dataTable().fnDestroy();
     $('#show').dataTable();
    }
  });
});

});

答案 1 :(得分:-1)

$(document).ready(function() {
  $("#pavadinimai").on("change", function() {
    var pavadinimai = $("#pavadinimai").val();
    $.ajax({
      type: "POST",
      url: "loader.php",
      data: {
        pavadinimai: pavadinimai
      },
      success: function(result) {
        $("#show").html(result);
        $('#show').dataTable().fnDestroy();
        $('#show').dataTable();
      }
    });
  });
});