我有这个代码,我显示不同的状态名称:
$request = $_GET;
$array = Statuses('Porting', $behavior='');
foreach($array["results"] as $ret) {
$sql="SELECT * from orders_porting where status = '".$ret["name"]."' ";
$rs=mysql_query($sql,$conn);
if($_GET[$ret["name"]] == '1') {
unset($request[$ret["name"]]);
$query = http_build_query($request);
echo '<a href="?'.$query.'">';
} else {
echo '<a href="?'.$query.'&'.$ret["name"].'=1">';
}
echo '<div class="TicketsMenuTabs""';
if($_GET[$ret["name"]] == '1') {
echo ' id="active"';
}
echo '>'.$ret["name"].' ('.mysql_num_rows($rs).')</div></a>';
}
它显示了按钮&#39;可以点击,我也希望能够点击它们。
我在if语句中添加了unset
和http_build_query
,但是如果选择了2个按钮并再次单击其中一个按钮以取消选中它们,则它们都将被取消选中
答案 0 :(得分:3)
在你的循环中,如果选择了每个链接,当你到达循环结束时,你将取消设置所有内容。
试试这个:
所以看起来应该是这样的:
$request = $_GET;
$array = Statuses('Porting', $behavior='');
foreach($array["results"] as $ret) {
$sql="SELECT * from orders_porting where status = '".$ret["name"]."' ";
$rs=mysql_query($sql,$conn);
if($_GET[$ret["name"]] == '1') {
unset($request[$ret["name"]]);
$query = http_build_query($request);
$request = $_GET;
echo '<a href="?'.$query.'">';
} else {
$query = http_build_query($request);
echo '<a href="?'.$query.'&'.$ret["name"].'=1">';
}
echo '<div class="TicketsMenuTabs""';
if($_GET[$ret["name"]] == '1') {
echo ' id="active"';
}
echo '>'.$ret["name"].' ('.mysql_num_rows($rs).')</div></a>';
}
也 - 尝试在读取之前检查$ _GET中的键是否存在 - 如下所示:
$request = $_GET;
$array = Statuses('Porting', $behavior='');
foreach($array["results"] as $ret) {
$sql="SELECT * from orders_porting where status = '".$ret["name"]."' ";
$rs=mysql_query($sql,$conn);
if(isset($_GET[$ret["name"]]) && $_GET[$ret["name"]] == '1') {
unset($request[$ret["name"]]);
$query = http_build_query($request);
$request = $_GET;
echo '<a href="?'.$query.'">';
} else {
$query = http_build_query($request);
echo '<a href="?'.$query.'&'.$ret["name"].'=1">';
}
echo '<div class="TicketsMenuTabs""';
if(isset($_GET[$ret["name"]]) && $_GET[$ret["name"]] == '1') {
echo ' id="active"';
}
echo '>'.$ret["name"].' ('.mysql_num_rows($rs).')</div></a>';
}
最后但并非最不重要 - 我必须同意krzysiej的评论 - 不要使用mysql_ *函数 - 它们是depricated - 使用mysqli或pdo-mysql代替(抱歉 - 由于我的代表,不能发布更多的两个链接 - 如果你点击“depricated”链接你会找到pdo-mysql的链接)
答案 1 :(得分:0)
在条件if($_GET[$ret["name"]] == '1')
的其他部分中,变量$query
未设置,因为您在此设置了它:
if($_GET[$ret["name"]] == '1') {
unset($request[$ret["name"]]);
$query = http_build_query($request);
echo '<a href="?'.$query.'">';
}
试试这个:
$query = http_build_query($request);
if($_GET[$ret["name"]] == '1') {
unset($request[$ret["name"]]);
echo '<a href="?'.$query.'">';
} else {
echo '<a href="?'.$query.'&'.$ret["name"].'=1">';
}