Tôi đã xác minh mã mà bạn sử dụng và tìm thấy lý do. Bạn có id
vấn đề trùng lặp trong mã của bạn . Bạn đã xác định <table>
phần tử được sử dụng cho jqGrid như sau
<table id="location"><tr><td /></tr></table>
<div id="pager-location"></div>
Nó có "location"
dưới dạng id
. Sau này bạn đã xác định
colModel: [
{name:'idms_location',index:'idms_location', width:150, editable:true,add:true, del:true, key:true},
{name:'location',index:'location', width:800,editable:true, add:true, del:true}
],
nơi tên location
sẽ được sử dụng làm tên cột. Vấn đề là tên cột sẽ được sử dụng để tạo id
tên của các phần tử khác nhau của lưới. Hơn nữa, chỉnh sửa biểu mẫu sử dụng tên cột trực tiếp dưới dạng id
giá trị của <input>
trường đại diện cho vị trí . Sau khi sử dụng biểu mẫu Thêm, phần tử sau
<input name="location" class="FormElement ui-widget-content ui-corner-all" id="location" role="textbox" type="text">
tồn tại trên trang với id="location"
cũng vậy. Nếu người dùng đóng biểu mẫu, biểu mẫu đó sẽ bị ẩn, nhưng không bị hủy. Vì biểu mẫu chỉnh sửa sẽ được đặt trên trang trước <table id="location">
$("#location tbody:first")
được sử dụng trong dòng
không tìm thấy bảng nhiều hơn và lưới trống.
Những gì bạn nên làm chỉ là đổi tên <table id="location">
đến một cái gì đó như <table id="
grid-location ">` hoặc chọn bất kỳ tên nào khác. Bạn nên cập nhật mã JavaScript tương ứng.
Các thay đổi khác cần được thực hiện trong lưới:
- thay đổi
jsonReader: {repeatitems: true, idms_location: "idms_location" }
tớijsonReader: {id: "idms_location" }
. - thêm
gridview: true
tùy chọn. - thêm
autoencode: true
tùy chọn. - xóa các tùy chọn không tồn tại
add:true, del:true
thuộc tính từcolModel
- loại bỏ
index
thuộc tính từcolModel
. - bạn nên sửa
Content-Type
Tiêu đề HTTP mà bạn sử dụng trong phản hồi máy chủ với dữ liệu JSON. Nó phải làContent-Type: application/json
thay vìContent-Type: text/html
mà bạn đang sử dụng hiện tại. Đó chỉ là một dòng mã PHP. - bạn có thể xóa
{edit:true,add:true,del:true}
các tùy chọn củanavGrid
- đó là các tùy chọn mặc định.