我需要从一些选中的复选框中获取值,并通过php / mysql中的分页传递这些值。如果在另一个页面上用户选择其他复选框,我需要将它们的值添加到之前选择的数组中。
我需要这个产品比较页面。总之,我需要:
有人知道怎么做吗?相关的例子将不胜感激?
答案 0 :(得分:0)
有不同的方法来维护页面的状态,包括cookie,会话变量,隐藏的输入,在查询字符串中传递它们,持久化到数据库等。在这种情况下,我可能会使用会话变量。
有关PHP会话的更多信息,请参阅PHP Sessions。
答案 1 :(得分:0)
一种解决方案是在表单内部的div
内加载所有页面。当您单击新页面链接时,隐藏除了您需要显示的所有div
之外的所有{{1}}。这样,所有复选框都以相同的形式提交,从而更容易处理服务器端。当然,这取决于每个页面的重量以及有多少页面。
另一种解决方案是保留会话变量,跟踪点击的内容。每次有人点击进入另一个页面。向服务器POST一个复选框列表。
答案 2 :(得分:0)
您可以使用javascript将复选框选项存储在Cookie中。这里有一些示例代码可以帮助您朝着正确的方向前进。
var aa_checkbox;
function init_checkbox(){
//setup blank cb cookie
if(!Cookie.read('cb')){
Cookie.write('cb', JSON.encode({}));
}
//setup "associative array" to match what is currently in the cookie
aa_checkbox = JSON.decode(Cookie.read('cb'));
//set up each checkbox with class="remember_cb"
$$('input.remember_cb').each(function(el){
//mark checked if it is in the cookie
if(aa_checkbox[el.name]){
el.checked = 'checked'
}
//setup onclick event to put checkbox status in the
el.addEvent('click', function(){
if(el.checked){
aa_checkbox[el.name] = 1;
}else{
delete(aa_checkbox[el.name]);
}
})
})
//save aa_checkbox back into cookie upon leaving a page
window.onbeforeunload = function(){Cookie.write('cb', JSON.encode(aa_checkbox));};
setup_form();
return true;
}
function setup_form(){
//set up form so that it adds the inputs upon submit.
$$('form.remember_cb_form').each(function(form){
form.addEvent('submit', function(ev){
//clean up previously inserted inputs
var aa_hidden_insert = $$('input.hidden_insert');
$each(aa_hidden_insert, function(el){
el.parentNode.removeChild(el);
})
var el_form = this;
//insert hidden elements representing the values stored in aa_checkbox
$each(aa_checkbox, function(i_value, s_name){
if(i_value){
var el_input = document.createElement('input');
el_input.type = 'hidden';
el_input.value = i_value;
el_input.name = s_name;
el_input.setAttribute('class', 'hidden_insert');
el_form.appendChild(el_input);
}
});
});
});
}
window.addEvent('domready', init_checkbox);
有working demo here和更详尽的解释here
答案 3 :(得分:-1)
您的分页链接实际上可以执行表单POST,然后在您的PHP脚本中读取复选框[],并更新隐藏的表单元素或将值添加到会话,任何有状态的。所以你的锚看起来像
<a href="#" onclick="document.myform.submit()">next</a>