Я пытаюсь применить AJAX к моему телу, но не ко всему столу. - PullRequest
0 голосов
/ 25 марта 2019
  1. Я пытаюсь применить Ajax к моему tbody, но не ко всем моим table, но я не могу этого сделать.AJAX работает хорошо, если я поставлю свою полную таблицу на странице.Я хочу разделить заголовок таблицы & tbody, чтобы быть на отдельной странице.Следующий код AJAX:

    function jsQueryData() {
    var objData = {
        action: actionSplit0 + '/QueryData',
    };
    
    $.post(
        index_File,
        objData,
        function(data, status) {
            $('#table-container').html(data)
        },
        'html'
    )
    

    }

  2. Это код моего table.Если я поместил код таблицы полностью на одной странице, AJAX работал хорошо:

        <table class="table table-striped table-bordered table-hover 
           main-table-h">
          <thead>
            <tr>
              <td scope="col" class="search-th">
                <input type="text" name="" value=""> <!-- for search -->
              </td>
            </tr>
            <tr>
              <th scope="col" class="align-top">item no</th>
            </tr>
          </thead>
          <tbody>
            <?php foreach ($allData1 as $data): ?>
              <tr>
                <td><?=$data->{2}; ?></td>
              </tr>
            <?php endforeach; ?>
          </tbody>
        </table>
    
  3. Я попытался разбить приведенный выше код на tbody на отдельной странице, но данные нене за столом, но все td собрались вместе.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

если я понимаю вашу проблему, вы хотите установить статичный thead, но ваше тело с помощью AJAX, если да,

HTML:

 <table class="table table-striped table-bordered table-hover 
   main-table-h">
  <thead>
    <tr>
      <td scope="col" class="search-th">
        <input type="text" name="" value=""> <!-- for search -->
      </td>
    </tr>
    <tr>
      <th scope="col" class="align-top">item no</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>

JS (JQUERY):

 $.ajax({
    url: 'result.php',
    type: 'get',
    dataType: 'JSON',
    success: function(response){
        var tableData=$("table").ediTable({
            json:{
                body:response
            },
            editable:false // if you do not want it editable.
        })
        //and if you want to send JSON data of table you can :
        jsonData=tableData.data();
        // now you can send jsonData to PHP via ajax ...
    }
});

Ref Lib: https://github.com/OxiGen1001/ediTable/

если я неправильно понял вашу проблему, пожалуйста, дайте мне знать!

0 голосов
/ 25 марта 2019

Вам нужно будет вернуть результаты ajax как json. Я не видел вашу таблицу и структуру базы данных, поэтому позвольте мне создать следующую таблицу и вставить в нее значения для цели тестирования

CREATE TABLE `users` (
  `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `username` varchar(100) NOT NULL,
  `name` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Вставить Заявления для тестирования

INSERT INTO `users` (`id`, `username`, `name`, `email`, `timestamp`) VALUES
(1, 'nancy1', 'Nancy moore  ', 'nancyfake@gmail.com', '2018-11-16 05:02:35'),
(2, 'tony1', 'tony moore    ', 'tonyfake@gmail.com', '2018-11-16 05:08:23');

Вот переписать ваш index.php , отражающий коды ajax / jquery

<!doctype html>
<html>
    <head>
        <title></title>

       <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script type="text/javascript">
$(document).ready(function(){
    $.ajax({
        url: 'result.php',
        type: 'get',
        dataType: 'JSON',
        success: function(response){
            var len = response.length;
            for(var i=0; i<len; i++){
                var id = response[i].id;
                var username = response[i].username;
                var name = response[i].name;
                var email = response[i].email;

                var tr_str = "<tr>" +
                    "<td align='center'>" + (i+1) + "</td>" +
                    "<td align='center'>" + username + "</td>" +
                    "<td align='center'>" + name + "</td>" +
                    "<td align='center'>" + email + "</td>" +
                    "</tr>";

                $("#userTable tbody").append(tr_str);
            }

        }
    });
});
</script>

    </head>
    <body>
        <div class="container">
            <table id="userTable" border="1" >
                <thead>
                    <tr>
                        <th width="5%">S.no</th>
                        <th width="20%">Username</th>
                        <th width="20%">Name</th>
                        <th width="30%">Email</th>
                    </tr>
                </thead>
                <tbody></tbody>
            </table>
        </div>
    </body>
</html>

config.php

Не забудьте отредактировать учетные данные базы данных под свои

<?php

$host = "localhost"; /* Host name */
$user = "root"; /* User */
$password = ""; /* Password */
$dbname = "your-db-name here"; /* Database name */

$con = mysqli_connect($host, $user, $password,$dbname);
// Check connection
if (!$con) {
 die("Connection failed: " . mysqli_connect_error());
}

result.php

<?php

include "config.php";

$return_arr = array();

$query = "SELECT * FROM users ORDER BY NAME";

$result = mysqli_query($con,$query);

while($row = mysqli_fetch_array($result)){
    $id = $row['id'];
    $username = $row['username'];
    $name = $row['name'];
    $email = $row['email'];

    $return_arr[] = array("id" => $id,
                    "username" => $username,
                    "name" => $name,
                    "email" => $email);
}

// Encoding array in JSON format
echo json_encode($return_arr);

Вот и все. Дайте мне знать, как оно идет

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