0

我有一个带有分页显示的产品列表,我可以使用复选框过滤产品的显示。问题是它只能在第一页显示复选框中的值,如果我转到下一页,我将丢失复选框选中的值。请帮我解决这个问题。我不知道应该在哪里隐藏输入以及如何编写 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
}
4

1 回答 1

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);

希望这能回答你的问题。

于 2013-09-15T11:45:25.097 回答