Заполните таблицу извлеченными данными после выборки, используя jquery + ajax - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь заполнить таблицу извлеченными данными из базы данных по идентификатору выбранной опции.Содержимое таблицы должно измениться, когда пользователь выберет другую опцию.Выбранный плагин работает нормально, а параметры выбора заполнены правильными значениями, как передать var selektas из test.php в 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 голосов
/ 11 октября 2018
$(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();
      }
    });
  });
});
0 голосов
/ 11 октября 2018

Попробуйте это Изначально вы инициализировали таблицу, поэтому сначала очистите таблицу $ ('# myTable'). DataTable (). FnDestroy ();Затем снова инициализируйте после ajax success $ ('# 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();
    }
  });
});

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...