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: truetùy chọn. - thêm
autoencode: truetùy chọn. - xóa các tùy chọn không tồn tại
add:true, del:truethuộc tính từcolModel - loại bỏ
indexthuộc tính từcolModel. - bạn nên sửa
Content-TypeTiê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/jsonthay vìContent-Type: text/htmlmà 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.