php ajax复选框是否选中的值,jquery-ajax - php+ajax分页时,checkbox复选框选中的问题...
目的:所有的數據實現分頁顯示,不是查詢所有的數據,而是每次取固定的條數。而且在每頁選中的數據ID都可以保存,一起提交選中的數據,做相應的操作。比如第一頁選中2條,第二頁選中3條,提交時是5條,如果返回第一頁,這也顯示選中的數據,回到第二頁,也會顯示選中的數據,以此類推,取消選中,翻頁幾次,無任何問題;總之,無論選中還是取消,翻頁都沒有bug
這個該如何實現呢?..分頁這個我沒問題,但是這個復選框一點下一頁,就會給刷新掉
回復內容:
目的:所有的數據實現分頁顯示,不是查詢所有的數據,而是每次取固定的條數。而且在每頁選中的數據ID都可以保存,一起提交選中的數據,做相應的操作。比如第一頁選中2條,第二頁選中3條,提交時是5條,如果返回第一頁,這也顯示選中的數據,回到第二頁,也會顯示選中的數據,以此類推,取消選中,翻頁幾次,無任何問題;總之,無論選中還是取消,翻頁都沒有bug
這個該如何實現呢?..分頁這個我沒問題,但是這個復選框一點下一頁,就會給刷新掉
兩種方案
方案1
- - -
1. 每一個頁面一個單獨的容器(div)。...
2. 加載新頁面時,首先檢查該頁面是否已經加載過了,例如加載頁面4// 代碼僅為示意
if($('.page-4', '.content').length > 0) {
$('.page', '.content').hide();
$('.page-4', '.content').show();
} else {
page4 = render_page(load_page(4)); //得到page4的結構
$('.page', '.content').hide();
$('.content').append(page4);
}
這樣在切換頁面的時候就可以保存頁面信息了。
方案2
- - -
創建一個對象來存放頁面數據,并且讓它支持自定義事件。當PAGE內容發生改變時,重新按照PAGE進行渲染。這實際上是一個MVC的方案。
下面的代碼隨手寫的,只是為了示意。請勿直接使用。// 可以用EventEmitter等等事件庫來支持,我這里為了簡單就用jQuery啦
var PAGE = $({
current: -1,
data: {}
});
PAGE.extend({
fetch: function() {
$.get('url', function(data) {
this.data[current_page] = data
this.trigger('value_change');
})
},
show: function(page) {
PAGE.current = page;
if(this.data[page]) {
this.trigger('value_change');
} else {
this.fetch(page);
}
},
});
PAGE.bind('value_change', function() {
render_page();
});
var render_page = function() {
if(PAGE[PAGE.current]) {
//按照PAGE[PAGE.current]的內容渲染 div#page的內容
} else {
throw('error');
}
};
$('input[type="checkbox"]', '#page').change(function() {
// 更新PAGE內容
PAGE.data[current_page][item] = value
PAGE.trigger(value_change);
});
選中后用一個數組變量a[]來保存選中的id;
分頁時上一頁數據的那部分html是刪掉的還是隱藏的?刪掉了肯定就肯定也沒有了呀。
這樣的情況就像購物車一樣對吧?每一頁選中的商品都扔進購物車,再批量處理。
我用CodeIgniter的時候用里面的購物車類處理過這種情況。原理就是用session存儲選中的ID,每個ID會生成一個唯一的rowid,渲染頁面的時候根據生成的rowid判斷當前項是否被選中。
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
總結
以上是生活随笔為你收集整理的php ajax复选框是否选中的值,jquery-ajax - php+ajax分页时,checkbox复选框选中的问题...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fastai学习:05_pet_bree
- 下一篇: 最小值c语言 循环,C语言循环结构-C语