如何通过分页维护复选框值?

时间:2013-09-14 17:20:24

标签: html user-interface checkbox

我有一个以分页显示的产品列表,我可以使用复选框过滤产品的显示。问题是它只能显示第一页复选框中的值,如果我转到下一页,我将丢失复选框检查的值。请帮我解决这个问题。我不知道我应该在哪里隐藏输入以及如何编写Java Script。这是我的代码:

<input id="checkbox_brand" type="checkbox"  name="checkbox_brand[<? echo    $data_brand[brand_name]; ?>]" value="<? echo $data_brand[brand_name]; ?>"/>

if (isset($_POST["checkbox_brand"])){
foreach($_POST["checkbox_brand"] as $status_a) {
$status_sql[] = '\''.$status_a.'\'';
}
$status = implode(',',$status_sql);
session_start();
$_SESSION["selected"]=$status;
}

if (session_is_registered("selected")){
-->my query
}

1 个答案:

答案 0 :(得分:0)

每次按下复选框,您都必须在JavaScript中使用字典数组

例如: 如果我使用你给出的示例页面,那么当按下“类别”中的复选框时 你必须在正确的变量中加上一个值。

// Initialize Objects
var userChoice = {};
userChoice.Catagories = {};
userChoice.Brands = {};
userChoice.ScreenSize = {};
.
.
.

// Pressing check box will trigger the bellow
userChoice.Categories["LG"] = 0;
userChoice.Categories["Sharp"] = 1;
userChoice.Categories["Sony"] = 1;
userChoice.Brands["LcdTV"] = 1;
userChoice.Brands["LedTV"] = 0;

每次按下复选框也会触发以下JavaScript

document.getElementById("userChoiceHiddenField").value = JSON.sringify("userChoice");

提交页面或转到下一页时,隐藏值将包含JSON字符串,因此您可以再次将其解析为JSON。

服务器端:(。NET)

string userChoiceHiddenField = request["userChoiceHiddenField"].ToString();

然后获取您获得的值并将其放回隐藏字段和JavaScript值中,如下所示:

userChoice = JSON.parse(document.getElementById("userChoiceHiddenField").value);

希望能回答你的问题。