我有以下代码,其中显示了不同的状态名称:
$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>';
}它显示的‘按钮’可以被点击,我希望能够取消点击他们也。
我已经在if语句中添加了unset和http_build_query,但是如果选择了两个按钮,并且我再次单击其中一个按钮来取消选择,它们都变成un。
发布于 2015-01-26 10:43:57
在您的循环中,如果选择了每个链接,则当您到达(循环的末尾)时,您将取消所有设置。
试试这个:
所以应该是这样的:
$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_*函数--它们是脱脂 --使用米斯里或pdo-mysql (抱歉--因为我的代表不能发布更多的链接--如果单击"depricated“链接,就会找到到pdo-mysql的链接)。
发布于 2015-01-26 10:26:15
在条件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">';
}https://stackoverflow.com/questions/28147971
复制相似问题