Cách lưu dữ liệu từ bảng html vào cơ sở dữ liệu bằng jquery trong php

Ví dụ sau sẽ minh họa cách một trang web có thể lấy thông tin từ cơ sở dữ liệu bằng AJAX

Giải thích ví dụ - Hàm showCustomer[]

Khi người dùng chọn một khách hàng trong danh sách thả xuống ở trên, một chức năng có tên là showCustomer[] được thực thi. Chức năng được kích hoạt bởi sự kiện onchange

hiệnKhách hàng

function showCustomer[str] {
  if [str == ""] {
    tài liệu. getElementById["txtHint"]. innerHTML = "";
    return;
  }
  const xhttp = new XMLHttpRequest[];
  xhttp.onload = function[] {
    tài liệu. getElementById["txtHint"]. bên trongHTML = cái này. responseText;
  }
  xhttp. open["NHẬN", "nhận khách hàng. php?q="+str];
  xhttp. gửi[];
}

Hàm showCustomer[] thực hiện như sau

  • Kiểm tra xem khách hàng có được chọn không
  • Tạo một đối tượng XMLHttpRequest
  • Tạo chức năng sẽ được thực thi khi phản hồi của máy chủ đã sẵn sàng
  • Gửi yêu cầu đến một tệp trên máy chủ
  • Lưu ý rằng một tham số [q] được thêm vào URL [với nội dung của danh sách thả xuống]

Trang máy chủ AJAX

Trang trên máy chủ được gọi bởi JavaScript ở trên là một tệp PHP có tên "getcustomer. php"

Mã nguồn trong "getcustomer. php" chạy truy vấn đối với cơ sở dữ liệu và trả về kết quả trong bảng HTML

và rõ ràng là tôi có chức năng addrow[] hoạt động tốt. Chức năng này được gọi khi nhấp vào nút lưu

$["#submit"].click[function[e] {
e.preventDefault[];
var obsName = $["#Obstacle"].val[];
var likeli = $["#Likelihood"].val[];
var sever = $["#Severity"].val[];
var princ = $["#Principal"].val[];
var risk = $["#ObsRisk"].val[];
var value = $["#ObsValue"].val[];
var dataString = 'obsName='+Obstacle+'likeli='+Likelihood+'sever='+Severity+'princ='+Principal+'risk='+ObsRisk+'value='+ObsValue;
$.ajax[{
type:'POST',
data:dataString,
url:'saveObstacles.php',
success:function[data] {
alert[data];
}
}];
}];

cuối cùng mã php của tôi trông như thế này

Thêm giải pháp của bạn ở đây

 B   I   U   S  small BIG code var     &  link [^] encode untab case indent outdent

Xem trước 0

thành viên hiện tại

hoặc tham gia với chúng tôi

Tải xuống, Bình chọn, Nhận xét, Xuất bản

Email của bạn

Email này đang được sử dụng. Bạn có cần mật khẩu của bạn?

Mật khẩu tùy chọn

Khi trả lời câu hỏi, vui lòng.

  1. Đọc kỹ câu hỏi.
  2. Hiểu rằng tiếng Anh không phải là ngôn ngữ đầu tiên của mọi người, vì vậy hãy khoan dung với lỗi chính tả và ngữ pháp
  3. Nếu một câu hỏi được diễn đạt kém thì hãy yêu cầu làm rõ, bỏ qua nó hoặc chỉnh sửa câu hỏi và khắc phục sự cố. Xúc phạm không được chào đón
  4. Đừng bảo ai đó đọc hướng dẫn. Rất có thể họ có và không nhận được. Đưa ra câu trả lời hoặc chuyển sang câu hỏi tiếp theo
Let's work to help developers, not make them feel stupid.


Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code [CPOL]

Đôi khi bạn cần làm việc từ phía máy khách trở lại máy chủ. Hướng dẫn này trình bày cách sử dụng jQuery để đọc các giá trị trong bảng HTML và lưu trữ các giá trị trong một mảng Javascrip có thể được gửi tới tập lệnh PHP trên máy chủ. Các ví dụ về mã trên trang này là các đoạn mã chức năng và có thể được xem trong nguồn của trang này

Hướng dẫn này được chia thành các bước sau đây để rõ ràng

  1. Sử dụng jQuery để đọc các giá trị trong bảng HTML
  2. Lưu trữ các giá trị bảng HTML trong một mảng Javascript đa chiều
  3. Chuyển mảng Javascript sang định dạng JSON
  4. Gửi mảng JSON tới tập lệnh PHP bằng jQuery AJAX
  5. Cách truy cập mảng Javascript được mã hóa JSON trong PHP

The following table will be used to demonstrate the code samples. The table has an id of “sampleTbl” [

] . This id will be used in the jQuery selector to access the table.

nhiệm vụ số. NgàyMô tảNhiệm vụ124 tháng 12 năm 2012Đêm Giáng sinhLàm bữa tối211 tháng 1 năm 2013Ngày kỷ niệmNhận hoa37 tháng 3 năm 2013Sinh nhậtNhận quà

Sử dụng jQuery để đọc các giá trị văn bản trong bảng HTML

Bước đầu tiên là thiết lập mã để truy cập từng ô của bảng. Mã jQuery sau đây có thể được sử dụng để đọc từng giá trị ô trong bảng trên. Trong ví dụ này, giá trị của mỗi ô trong bảng được thêm vào biến TableData. Ở cuối mỗi hàng, một ký tự dòng mới [‘\n’] được thêm vào chuỗi giúp chuỗi dễ đọc hơn cho đầu ra

$['#sampleTbl tr'].each[function[row, tr]{
    TableData = TableData 
        + $[tr].find['td:eq[0]'].text[] + ' '  // Task No.
        + $[tr].find['td:eq[1]'].text[] + ' '  // Date
        + $[tr].find['td:eq[2]'].text[] + ' '  // Description
        + $[tr].find['td:eq[3]'].text[] + ' '  // Task
        + '\n';
}];

jquery. mỗi hàm được sử dụng để lặp qua các hàng của bảng lưu trữ mã định danh hàng của bảng trong biến tr. Đối tượng này đại diện cho đối tượng của hàng đang hoạt động. Với mỗi lần lặp, jQuery. mã tìm được sử dụng để xác định vị trí cột trong hàng bằng cách sử dụng giá trị chỉ mục dựa trên số không

Ví dụ: các cột trong bảng mẫu sẽ có giá trị chỉ mục từ 0 – 3. Mật mã. $[tr]. tìm [‘td. eq[2]’]. text[] được sử dụng để đọc giá trị văn bản trong cột Mô tả

Lưu trữ giá trị bảng HTML vào đối tượng mảng Javascript đa chiều

Sau khi bạn hiểu cách truy cập các giá trị văn bản trong mỗi ô của bảng, bước tiếp theo là lưu các giá trị trong một mảng. Đoạn mã sau sẽ đọc bảng và lưu trữ các giá trị ô trong mảng TableData

var TableData = new Array[];
    
$['#sampleTbl tr'].each[function[row, tr]{
    TableData[row]={
        "taskNo" : $[tr].find['td:eq[0]'].text[]
        , "date" :$[tr].find['td:eq[1]'].text[]
        , "description" : $[tr].find['td:eq[2]'].text[]
        , "task" : $[tr].find['td:eq[3]'].text[]
    }
}]; 
TableData.shift[];  // first row is the table header - so remove

Đối với bảng mẫu, giá trị của biến hàng là chỉ số hàng của bảng và sẽ nằm trong khoảng từ 0 – 3. Vì hàng tiêu đề không cần thiết, shift được sử dụng để bật nó ra khỏi mảng. Bảng dữ liệu. sự thay đổi[];

Chuyển đổi một mảng Javascript sang định dạng JSON

Chuyển đổi một mảng Javascript thành định dạng JSON rất dễ thực hiện với jQuery-json, một plugin jQuery miễn phí. Bao gồm plugin này trên trang chạy tập lệnh Javascript của bạn

Khi plugin này được cài đặt, $. hàm toJSON sẽ tuần tự hóa một đối tượng javascript thành định dạng JSON

var TableData;
TableData = storeTblValues[]
TableData = $.toJSON[TableData];

function storeTblValues[]
{
    var TableData = new Array[];

    $['#sampleTbl tr'].each[function[row, tr]{
        TableData[row]={
            "taskNo" : $[tr].find['td:eq[0]'].text[]
            , "date" :$[tr].find['td:eq[1]'].text[]
            , "description" : $[tr].find['td:eq[2]'].text[]
            , "task" : $[tr].find['td:eq[3]'].text[]
        }    
    }]; 
    TableData.shift[];  // first row will be empty - so remove
    return TableData;
}

Mã để chuyển đổi mảng TableData sang định dạng JSON là. Dữ liệu bảng = $. toJSON[TableData];

Mảng TableData hiện đã sẵn sàng để gửi tới máy chủ PHP script

Gửi mảng JSON tới PHP

Đối với ví dụ này, jQuery $. chức năng ajax được sử dụng. Loại biến được đặt thành “POST” và url được đặt thành tập lệnh PHP mẫu

var TableData;
TableData = $.toJSON[storeTblValues[]];
                
 $.ajax[{
    type: "POST",
    url: "processJSONarray.php",
    data: "pTableData=" + TableData,
    success: function[msg]{
        // return value stored in msg variable
    }
}];

Đối với phương thức AJAX này, mảng TableData được mã hóa JSON đang được chuyển đến máy chủ thông qua biến POST pTableData. Phản hồi của máy chủ sẽ nằm trong biến msg trong trình xử lý thành công

Xử lý một đối tượng mảng Javascript được mã hóa JSON trong PHP

Sau khi mảng được mã hóa JSON được gửi đến URL đích, tập lệnh PHP sẽ cần thực hiện 2 bước trước khi truy cập các giá trị của mảng;

  1. Unescape các giá trị chuỗi trong mảng JSON
  2. Giải mã mảng JSON

// Unescape the string values in the JSON array
$tableData = stripcslashes[$_POST['pTableData']];

// Decode the JSON array
$tableData = json_decode[$tableData,TRUE];

// now $tableData can be accessed like a PHP array
echo $tableData[1]['description'];

Trong ví dụ này, hàm stripcslashes[] của thư viện PHP được sử dụng. Điều này là do trong quá trình mã hóa JSON, các trích dẫn xung quanh các biến chuỗi đã bị thoát. Nếu không có dấu gạch chéo, chức năng json_decode sẽ không thành công

Khi mảng đã được xử lý bởi hàm json_decode, mảng có thể được truy cập như một mảng PHP bình thường. $tableData[1][‘description’];

  • Facebook
  • Twitter
  • Pinterest
  • LinkedIn

Giới thiệu về tác giả

Bob Scavilla

Đối tác + CEO

Với hơn 35 năm kinh nghiệm trong lĩnh vực công nghệ và kinh doanh, Bob là một chuyên gia lập trình, kỹ sư phần mềm và nhà tiếp thị kỹ thuật số. Đọc thêm

Bài viết này hữu ích không?

20 Nhận xét

  • Mohammad 27 tháng 5 năm 2020

    Cảm ơn vì bài viết có giá trị và thiết thực
    Làm cách nào để gửi nó tới cơ sở dữ liệu [Mysql]?

    Reply
    • Bob Scavilla Ngày 17 tháng 8 năm 2020

      Mohammad, bạn có thể chuyển dữ liệu bảng trở lại PHP không? . Không dễ để ghi dữ liệu từ javascript vào bảng MySql phụ trợ. https. //www. hướng dẫn. com/php/mysql_insert_php. htm
      …bob

      Reply
  • Frank Ngày 17 tháng 6 năm 2020

    Cảm ơn

    Reply
  • Karan Chhabra Ngày 13 tháng 7 năm 2020

    Thưa ông, tôi có thẻ đầu vào trong bảng và bằng cách sử dụng thẻ này, tôi không thể tìm nạp dữ liệu.
    bất cứ khi nào tôi lặp lại o/p thì nó không hiển thị gì [chỉ có khoảng trống].

    Reply
    • Bob Scavilla Ngày 17 tháng 8 năm 2020

      Xin chào Karan, nếu bạn có thể, vui lòng trả lời bằng một mẫu mã html có thẻ này trong đó và tôi sẽ sẵn lòng trả lời.
      …bob

      Reply
  • Chủ nhật Ngày 27 tháng 10 năm 2020

    Xin chào ngài, giả sử tôi có một bảng tên là sinh viên và một tên trường matric_no và trường này có tối đa ba mục, tôi đã chọn tất cả các mục, bây giờ tôi muốn gán từng matric_no cho các biến khác nhau trong JavaScript để có thể sử dụng nó,

    Reply
    • Bob Scavilla Ngày 04 tháng 11 năm 2020

      Ak, Bạn có thể muốn thử sử dụng Bản đồ. Cách sử dụng chính xác để lưu trữ dữ liệu trong Bản đồ là thông qua phương thức set[key, value]

      let contact = new Map[]
      contacts. set[‘Jessie’, {phone. “213-555-1234”, địa chỉ. “123 N 1st Ave”}]

      Bạn cũng có thể di chuyển trực tiếp các giá trị.
      var number = [65, 44, 12, 4];
      var newarray = numbers. bản đồ[myFunction]

      function myFunction[num] {
      return num * 10;
      }

      Reply
  • Nikolas Ngày 08 tháng 11 năm 2020

    Thưa ngài, cảm ơn bạn, điều này giúp ích rất nhiều

    Reply
  • Nikolas Ngày 08 tháng 11 năm 2020

    Thưa ngài, cảm ơn ngài, điều này giúp ích rất nhiều…

    Reply
  • Michal Ngày 11 tháng 12 năm 2020

    Mình có Form, có 2 bảng, bảng nhỏ đầu tiên có tên tĩnh của các trường nhập văn bản, mình có thể gọi trực tiếp. nhưng vấn đề là bảng thứ hai mà tôi đã tạo, người dùng có thể thêm nhiều hàng hơn khi nhấp vào nút, với lưu ý rằng tôi phải thêm vào đó một số hàng "trống" ở vị trí mà bảng sẽ được chia khi nó được in ra, bởi vì . Vì vậy, các hàng "trống" này cần được bỏ qua trong quá trình thu thập dữ liệu cuối cùng.
    Tất cả các hàng từ bảng thứ hai có tên duy nhất cho mỗi cột, với chỉ số hàng là số. số này nằm trong cột đầu tiên của bảng này, vì vậy có thể so sánh nó với số này.
    Bạn có thể tư vấn cách thu thập dữ liệu từ Form như thế này không? . //pastebin. com/aD5ufdYB

    Reply
    • Bob Scavilla Ngày 11 tháng 12 năm 2020

      Michal, bạn có thể kiểm tra một hàng trống như vậy không?
      ______10

      Reply
  • dinesh ngày 08 tháng 2 năm 2021

    Chào Bob ,

    Hiện tại tôi đang sử dụng dịch vụ.
    Và vấn đề của tôi là tôi đã tạo một mục danh mục và nó có một bảng giống như biến để chèn các giá trị vào đó.
    Nhưng một khi mặt hàng được đặt hàng và khi tôi kiểm tra biến bảng trong phần phụ trợ thì các giá trị hoàn toàn trống.
    Tôi có biết cách giải quyết vấn đề này không?

    Mã số

    Loại
    Mô tả
    Số lượng

    Reply
    • Bob Scavilla Ngày 19 tháng 4 năm 2021

      Dinesh, tôi tò mò liệu bạn có giải quyết được vấn đề của mình không? . Bạn đang sử dụng jQuery hay javascript thẳng?

      Hãy cho tôi biết thêm thông tin cụ thể và tôi có thể trợ giúp tốt hơn.
      …bob

      Reply
  • Rick Ngày 10 tháng 3 năm 2022

    Rất thú vị và lý tưởng cho các yêu cầu của tôi, nhưng tôi không hiểu rõ về phần ajax

    Nó có đi vào bên trong chức năng 'storeTblValues' hay không?

    Reply
    • Bob Scavilla Ngày 11 tháng 3 năm 2022

      Xin chào Rick, tôi đã tải tất cả các tệp lên GitHub. https. //github. com/rscavilla/store-html-table-values-in-a-javascript-array

      … bồng bềnh

      Reply
  • Biến mất Ngày 20 tháng 6 năm 2022

    Chào Bob,
    Nếu tôi muốn gửi dữ liệu trở lại Bộ điều khiển của mình thay vì PHP, thì tôi cần phải làm gì?

    Reply
    • Kim Kalishek Ngày 21 tháng 6 năm 2022

      Xin chào Avanish, tôi cho rằng bộ điều khiển của bạn là một đối tượng javascript có chức năng gọi lại? . Hãy cho tôi biết thêm chi tiết và tôi sẽ trả lời câu hỏi của bạn tốt hơn

      Reply
  • phản hồi. lưu trữ các giá trị bảng html trong một mảng javascript. Tệp GitHub Tải xuống miễn phí
  • YOGESH KUMAR ROY Ngày 15 tháng 11 năm 2022

    Xin chào Bob, tôi có một html với 3 menu thả xuống và 3 hộp văn bản trong một hàng div và tôi đang sử dụng bộ lặp jquery để lặp lại hàng bằng cách nhấp vào nút thêm. Nhưng khi người dùng thêm tất cả các chi tiết vào các hàng div tương ứng thì cách người dùng sẽ nhận được tất cả các giá trị hộp văn bản và thả xuống, sau đó chèn tất cả những thứ đó bằng lệnh gọi jquery ajax. Cách lặp lại từng dữ liệu div rồi chèn dữ liệu vào máy chủ. Làm ơn gợi ý cho tôi

    Làm cách nào chúng ta có thể lưu dữ liệu từ bảng HTML vào cơ sở dữ liệu trong PHP?

    Đối với điều này, bạn cần làm theo các bước sau. .
    Bước 1. Lọc các yêu cầu về biểu mẫu HTML của bạn cho trang web liên hệ với chúng tôi. .
    Bước 2. Tạo cơ sở dữ liệu và bảng trong MySQL. .
    Bước 3. Tạo biểu mẫu HTML để kết nối với cơ sở dữ liệu. .
    Bước 4. Tạo một trang PHP để lưu dữ liệu từ dạng HTML vào cơ sở dữ liệu MySQL của bạn. .
    Bước 5. Tất cả đã được làm xong

    Làm cách nào để chèn dữ liệu bảng HTML vào cơ sở dữ liệu bằng jQuery?

    Đầu tiên, nhiều hàng [bản ghi] sẽ được chèn vào Bảng HTML, sau đó dữ liệu từ tất cả các hàng của Bảng HTML sẽ được gửi đến Trình điều khiển bằng jQuery AJAX sẽ . Dao cạo Net MVC.

    Làm cách nào để lưu dữ liệu từ biểu mẫu HTML vào cơ sở dữ liệu bằng jQuery?

    Cách lưu dữ liệu vào cơ sở dữ liệu bằng jQuery và JSON trong ASP. Mạng .
    .
    .
    .

    Làm cách nào để lưu dữ liệu bảng HTML trong cơ sở dữ liệu?

    Trường hợp sử dụng. Tạo một đơn đặt hàng mới .
    Xác định truy vấn. Chúng tôi sẽ xác định hai truy vấn. .
    Tạo lược đồ XML. .
    Tạo biểu mẫu. .
    Liên kết đến cơ sở dữ liệu. .
    Xác định truy vấn SQL. .
    Tạo một lược đồ XML. .
    Tạo biểu mẫu. .
    Liên kết đến cơ sở dữ liệu

Chủ Đề