1 Lấy dữ liệu từ mysql bằng cách sử dụng jquery trên nút nhấp

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi đã tìm nạp một số hàng dữ liệu trong bảng dữ liệu từ cơ sở dữ liệu mysql. Cột cuối cùng của bảng sẽ hiển thị một nút và tôi đã thêm id của nút dưới dạng ID duy nhất từ ​​cơ sở dữ liệu. Khi ai đó sẽ nhấp vào nút, dữ liệu chi tiết hơn từ cơ sở dữ liệu từ ID cụ thể đó sẽ được hiển thị ở phía bên phải của dữ liệu bằng cách sử dụng jquery.

Mã html tôi có

<tr><td>John Doe</td><td><button class="btn btn-success" id="<?php print($sms_id) ?>"> Details</button></td><tr>

Tôi muốn tìm nạp dữ liệu với id tương ứng vào bảng sau

<table id="details_sms" class="table table-bordered table-striped">                      
          <tbody id="showdetails">
            <tr><td>From: </td><td></td></tr>
            <tr><td>Amount: </td><td></td></tr>
            <tr><td>Transaction ID:</td><td></td></tr>
            <tr><td>Rec Number: </td><td></td></tr> 
            <tr><td>Full SMS text: </td><td></td></tr>
            <tr><td><button class="btn btn-general">Previous</button> </td><td><button class="btn btn-general">Next</button></td></tr>                              
          </tbody>                      
    </table>

Ajax

$.ajax({
  method: "POST",
  url: "{fetch_details.php}}",
  data: {id = "" } 
})
  .done(function( msg ) {
     $("showdetails").html(result); 
  });

fetch_detail.php

<?php 
require_once("connection.php");
include("functions.php");


 $get_sms_info = mysqli_query($connect,"SELECT * FROM sms_in");



while($result = mysqli_fetch_array($get_sms_info,MYSQLI_ASSOC)){
                    $sms_id = $result['id'];
                    $sms_text = $result['sms_text'];
                    $sms_time = $result['sent_dt'];
                    $sender_number = $result['sender_number'];

                preg_match_all('/(\S+)\s+from\s+(\d+).*Fee\s+Tk\s+(\S+)\..*([a-zA-Z0-9]{10})\s+at\s+(.*)/', $sms_text, $matches);

?>
<tr>

                            tr><td>From: </td><td><?php print($matches[5][0]);?></td></tr>
                    <tr><td>Amount: </td><td><?php print($matches[2][0]);?></td></tr>
                    <tr><td>Transaction ID:</td><td><?php print($matches[1][0]); ?></td></tr>
                    <tr><td>Rec Number: </td><td><?php print($matches[4][0]); ?></td></tr>  
                    <tr><td>Full SMS text: </td><td>$sms_text</td></tr>
                    <tr><td><button class="btn btn-general">Previous</button> </td><td><button class="btn btn-general">Next</button></td></tr>      




</tr>
<?php
}

?>

Ngoài ra nút Tiếp theo và trước đó sẽ tải dữ liệu tương ứng với id trước đó.

Làm cách nào tôi có thể thực hiện việc này bằng jquery?

    
- 1
  1. Tạo một hàm JS sẽ thêm một hàng vào bảng. Nhận dữ liệu từ php qua json. Trên AJAX thành công, chỉ cần gọi cho bạn chức năng nối thêm một hàng vào bảng.
    2019-05-08 16: 52: 48Z
  2. Bạn có thể giải thích với mã chính xác không? Cảm ơn
    2019-05-08 16: 56: 55Z
1 Câu trả lời                              1                         

Không bao giờ sợ tách biệt bởi các chức năng. Bạn không bao giờ biết nó sẽ có ích ở đâu.

  

JS

function addRowToSmsDetailsTable(rowDataFromBackEnd) {
   let html = '<tr><td>' + rowDataFromBackEnd.col1 + '....</td></tr>';
   $('#details_sms tr:last').after(html);
}


$.ajax({
  method: "POST",
  dataType: 'json', // waiting for json response
  url: "fetch_details.php",
  data: {
      id: 1
  },
  success: addRowToSmsDetailsTable // success response handler
});
     

PHP

<?php 
require_once("connection.php");
include("functions.php");

header('Content-Type: application/json'); /* set content type because ajax waiting for json */

define('SMS_INFO_REGEX', '/(\S+)\s+from\s+(\d+).*Fee\s+Tk\s+(\S+)\..*([a-zA-Z0-9]{10})\s+at\s+(.*)/');

$get_sms_info = mysqli_query($connect, "SELECT * FROM sms_in");
$resultArray = [];
while($result = mysqli_fetch_array($get_sms_info,MYSQLI_ASSOC)){
    preg_match_all(SMS_INFO_REGEX, $sms_text, $matches);
    $resultArray[] = [
        'id'            => $result['id']
        'from'          => $matches[5][0],
        'amount'        => $matches[2][0],
        'transactionId' => $matches[1][0],
        'recNumber'     => $matches[4][0],
        'smsText'       => $result['sms_text']
    ];
}

echo json_encode($resultArray);                  
?>

Json ở đây để chuẩn hóa khả năng tương tác với các giao diện bên ngoài và bên trong. AJAX sẽ đọc json dưới dạng đối tượng JS và mảng PHP kết hợp của bạn sẽ có sẵn trong hàm JS dưới dạng đối tượng (vì chúng tôi đã chỉ định dataType: json). Tôi đã không kiểm tra mã này, nhưng tôi nghĩ rằng mọi thứ đều theo thứ tự. Tuy nhiên, lời khuyên của tôi: tránh các biểu thức thông thường, khi có thể.

    
- 1
2019-05-09 10: 01: 51Z
nguồn đặt đây