PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

如何通过列表中某一个属性来显示具有相同属性的内容

原创
2016-06-23 14:11:25 872浏览

这是我的课题列表,我的课题列表中有一列是“状态”来显示“可选”或“不可选”的。目前列表显示的是所有可选和不可选的内容。我想添加一个功能,就是通过点击“可选”后,系统自动调用数据库中状态为“可选”的内容;点击“不可选”后,系统又能自动调用数据库中状态为“不可选”的内容。

 课题列表
";} else{ echo ""; } if($row['surplus']==0) $ss="不可选"; else $ss="可选"; echo" "; $n++; } ?>

课题编号

课题名称
指导教师
职称
可选人数
选题情况
状态
详细资料
".$row['id']."
".$row['subject']."
".$row['teacher']."
".$row['zhicheng']."
".$row['number']."
".$row['xuehao']."
".$ss."


回复讨论(解决方案)

功能类似你的查看,点击之后弄一个链接,然后把id传过去,update该条记录。

加个select框,监听onchange 事件,然后form提交实现过滤记录。

加个select框,监听onchange 事件,然后form提交实现过滤记录。 能简单地帮我写出一些关键的代码吗?





$where=isset($_POST['surplus']) ? " where surplus=".$_POST['surplus'] : '';
$query=mysql_query("select * from jiaoshi $where order by id asc limit $offset,$list_num") or die ("fail");

我的列表是这样的 我想直接点击列表上的“可选”,然后列表筛选数据库表后显示所有可选课程,这样的话我应该怎么办呢?













extract($_REQUEST);
$n=0;
$query=mysql_query("select count(*) as sm from jiaoshi");
mysql_query("set names 'GB2312'");
$row=mysql_fetch_array($query);
$count=$row['sm'];
if(empty($offset))
{$offset=0;}
echo $offset;
$query=mysql_query("select * from jiaoshi order by id asc limit $offset,$list_num") or die ("fail");
mysql_query("set names 'GB2312'");
while($row=mysql_fetch_array($query)){
if(($n%2)!='0'){
echo "";}
else{
echo "";
}
if($row['surplus']==0)
$ss="不可选";
else $ss="可选";
echo"








";
$n++;
}
?>

课题编号

课题名称
指导教师
职称
可选人数
选题情况
状态
详细资料
".$row['id']."
".$row['subject']."
".$row['teacher']."
".$row['zhicheng']."
".$row['number']."
".$row['xuehao']."
".$ss."




$where=($_POST['surplus']=="") ? '' : " where surplus=".$_POST['surplus'] ;
$query=mysql_query("select * from jiaoshi $where order by id asc limit $offset,$list_num") or die ("fail");

$where=($_POST['surplus']=="") ? '' : " where surplus=".$_POST['surplus'] ;
$query=mysql_query("select * from jiaoshi $where order by id asc limit $offset,$list_num") or die ("fail"); 我按你给我的第一种方法写的,但是系统提示错误Undefined index: surplus 在第46行。

 课题列表
";} else{ echo ""; } if($row['surplus']==0) $ss="不可选"; else $ss="可选"; echo" "; $n++; } ?>

课题编号

课题名称
指导教师
职称
可选人数
选题情况
状态
详细资料
".$row['id']."
".$row['subject']."
".$row['teacher']."
".$row['zhicheng']."
".$row['number']."
".$row['xuehao']."
".$ss."

46 行的 $where=($_POST['surplus']=="") ? '' : " where surplus=".$_POST['surplus'] ;
应写作 $where=(isset($surplus)) ? '' : " where surplus='$surplus'";

原因是 37 的 extract($_REQUEST); 已经将外来的变量导入到变量表中了
所以不再需要从 $_POST 中读取,何况也不一定是 post 方式传入的

extract这个函数生成的变量应该还是局部变量吧

46 行的 $where=($_POST['surplus']=="") ? '' : " where surplus=".$_POST['surplus'] ;
应写作 $where=(isset($surplus)) ? '' : " where surplus='$surplus'";

原因是 37 的 extract($_REQUEST); 已经将外来的变量导入到变量表中了
所以不再需要从 $_POST 中读取,何况也不一定是 post 方式传入的 我修改后系统提示又变成Undefined variable: surplus 在46行。还有就是,您给看看我这种方法能实现点“可选”实现列表显示所有可选的内容不?

不好意思,写反了!
应该这样:

$where = (! isset($surplus)) ? '' : " where surplus='$surplus'";

不好意思,写反了!
应该这样:

$where = (! isset($surplus)) ? '' : " where surplus='$surplus'";
嗯,这下没有错误了,嘿嘿。但是那个可选不可选功能仍然没有实现,我应该再怎么修改下呢?
 课题列表
";} else{ echo ""; } if($row['surplus']==0) $ss="不可选"; else $ss="可选"; echo" "; $n++; } ?>

课题编号

课题名称
指导教师
职称
可选人数
选题情况
状态
详细资料
".$row['id']."
".$row['subject']."
".$row['teacher']."
".$row['zhicheng']."
".$row['number']."
".$row['xuehao']."
".$ss."

贴出截图中的下拉列表的代码

贴出截图中的下拉列表的代码 第18-24行

那不是都有了,还要什么?

那不是都有了,还要什么? 但是当我选择“可选”后,列表还是显示的全部可选和不可选的内容,并没有分类……

$query=mysql_query("select * from jiaoshi $where order by id asc limit $offset,$list_num") or die ("fail");

$query=mysql_query("select * from jiaoshi $where order by id asc limit $offset,$list_num") or die ("fail"); 那我应该把这两句放在哪呢?

$where = (! isset($surplus)) ? '' : " where surplus='$surplus'";$query=mysql_query("select * from jiaoshi $where order by id asc limit $offset,$list_num") or die ("fail"); 

原来的位置就可以啊

原来的位置就可以啊 嗯,我照你说的那样改了,但是跟原来一样。我点“可选”后,内容不变,而且立即弹回“不可选”


改为:


但是内容应该有变化了才对啊


改为:


但是内容应该有变化了才对啊 不好意思我看错了,内容确实是有变化了,他把第一页的不可选的内容全部筛选掉了,但是我点下一页,它又显示的混合的可选和不可选的内容?

print "

上一页";}

if(($pages!=0)&&(($newoffset/$list_num)!=$pages))
{
print("下一页");
}

$where = (! isset($surplus)) ? '' : " where surplus='$surplus'";
这句改为:
$where = (isset($surplus) && strlen($surplus)>0) ? " where surplus='$surplus'" : '';

这是我改完后的,点可选后每一页都是可选了,就是有一点小问题,它提示第90行有一个未定义的变量 Undefined variable: surplus这是怎么回事呢?

 课题列表
0) ? " where surplus='$surplus'" : ''; $query=mysql_query("select * from keti $where order by id asc limit $offset,$list_num") or die ("fail"); mysql_query("set names 'GB2312'"); while($row=mysql_fetch_array($query)){ if(($n%2)!='0'){ echo "";} else{ echo ""; } if($row['surplus']==0) $ss="不可选"; else $ss="可选"; echo" "; $n++; } ?>

课题编号

课题名称
指导教师
职称
可选人数
选题情况
状态
详细资料
".$row['id']."
".$row['subject']."
".$row['teacher']."
".$row['zhicheng']."
".$row['number']."
".$row['xuehao']."
".$ss."
目前共有".$count."条记录 共".$pages."页"; if($offset){ $preoffset=$offset-$list_num; print "首页上一页";} else { echo "首页上一页";} $nextoffset=$offset+$list_num; if(($pages!=0)&&(($nextoffset/$list_num)!=$pages)) { print("下一页");} else{ echo "下一页";} $pageno=($offset/$list_num)+1; echo "第页 "; ?>

$surplus 只在选择了下拉框后才会有
你需要在 37 行前为 $surplus 赋初值
或在 90 行做条件判断

都在做毕设了,怎么连基本常识都不知道?

$surplus 只在选择了下拉框后才会有
你需要在 37 行前为 $surplus 赋初值
或在 90 行做条件判断

都在做毕设了,怎么连基本常识都不知道?
唉,惭愧惭愧,身为这个专业的人也没有为这个专业发光发热,尽拖后腿了……
那我在第37行给surplus赋个什么值呢

$surplus=?;

话说版主你今天终于理我了,那我就厚着脸皮再问你个问题,当我点“可选”后,列表下边的

还是显示的所有“可选”和“不可选”的总记录和总页数,怎么能让它显示成我点完“可选”后的记录和页数?

$surplus = ''; 就可以。

你的总记录数和总页数是通过
$query=mysql_query("select count(*) as sm from jiaoshi");
这句算出来的 ,你需要将where条件也加入进去

给surplus赋个什么值呢
赋什么值都不合适!
只要一赋值,就变成条件查询了
也就是一开始的 可选和不可选 共存的情况就没有了
这是你的数据组织有问题而造成的

计算总记录和总页数应放在 46 行以后进行

你们太伟大了。我还以为只说一下思路,居然HMTL都出来了。

$surplus = ''; 就可以。
你的总记录数和总页数是通过
$query=mysql_query("select count(*) as sm from jiaoshi");
这句算出来的 ,你需要将where条件也加入进去 那这样写对吗?

$query=mysql_query("select count(*) as sm from jiaoshi where surplus=$surplus");

$surplus = ''; 就可以。

你的总记录数和总页数是通过
$query=mysql_query("select count(*) as sm from jiaoshi");
这句算出来的 ,你需要将where条件也加入进去 还有一个问题,为什么点“不可选”的时候内容没有变化?

将下面几行放在$where 的下面就可以了
$query=mysql_query("select count(*) as sm from keti");
mysql_query("set names 'GB2312'");
$row=mysql_fetch_array($query);
$count=$row['sm'];

将下面几行放在$where 的下面就可以了
$query=mysql_query("select count(*) as sm from keti");
mysql_query("set names 'GB2312'");
$row=mysql_fetch_array($query);
$count=$row['sm']; 如果加上这句的话“可选”功能就失效了,我就先把它注释掉了。

$surplus='';

这是我最新修改的,把那几句换了位置后总记录数和总页数没什么变化。
 课题列表
0) ? " where surplus='$surplus'" : ''; $query=mysql_query("select count(*) as sm from keti"); mysql_query("set names 'GB2312'"); $row=mysql_fetch_array($query); $count=$row['sm']; $query=mysql_query("select count(*) as sm from keti"); mysql_query("set names 'GB2312'"); $row=mysql_fetch_array($query); $count=$row['sm']; $query=mysql_query("select * from keti $where order by id asc limit $offset,$list_num") or die ("fail"); mysql_query("set names 'GB2312'"); while($row=mysql_fetch_array($query)){ if(($n%2)!='0'){ echo "";} else{ echo ""; } if($row['surplus']==0) $ss="不可选"; else $ss="可选"; echo" "; $n++; } ?>

课题编号

课题名称
指导教师
职称
可选人数
选题情况
状态
详细资料
".$row['id']."
".$row['subject']."
".$row['teacher']."
".$row['zhicheng']."
".$row['number']."
".$row['xuehao']."
".$ss."
目前共有".$count."条记录 共".$pages."页"; if($offset){ $preoffset=$offset-$list_num; print "首页上一页";} else { echo "首页上一页";} $nextoffset=$offset+$list_num; if(($pages!=0)&&(($nextoffset/$list_num)!=$pages)) { print("下一页");} else{ echo "下一页";} $pageno=ceil(($offset/$list_num)+1); echo "第页 "; ?>

$surplus=''; //放在这个位置
extract($_REQUEST);

$query=mysql_query("select count(*) as sm from keti $where");

这是我最新的代码,仍然无法实现的功能就是,它无法计算点击“可选”后的总条数和总页数。

 课题列表
0) ? " where surplus='$surplus'" : ''; $query=mysql_query("select count(*) as sm from keti $where"); mysql_query("set names 'GB2312'"); $row=mysql_fetch_array($query); $count=$row['sm']; $query=mysql_query("select count(*) as sm from keti"); mysql_query("set names 'GB2312'"); $row=mysql_fetch_array($query); $count=$row['sm']; $query=mysql_query("select * from keti $where order by id asc limit $offset,$list_num") or die ("fail"); mysql_query("set names 'GB2312'"); while($row=mysql_fetch_array($query)){ if(($n%2)!='0'){ echo "";} else{ echo ""; } if($row['surplus']==0) $ss="不可选"; else $ss="可选"; echo" "; $n++; } ?>

课题编号

课题名称
指导教师
职称
可选人数
选题情况
状态
详细资料
".$row['id']."
".$row['subject']."
".$row['teacher']."
".$row['zhicheng']."
".$row['number']."
".$row['xuehao']."
".$ss."
目前共有".$count."条记录 共".$pages."页"; if($offset){ $preoffset=$offset-$list_num; print "首页上一页";} else { echo "首页上一页";} $nextoffset=$offset+$list_num; if(($pages!=0)&&(($nextoffset/$list_num)!=$pages)) { print("下一页");} else{ echo "下一页";} $pageno=ceil(($offset/$list_num)+1); echo "第页 "; ?>

44 到 56 行改成
mysql_query("set names 'GB2312'");
$where = (isset($surplus) && strlen($surplus)>0) ? " where surplus='$surplus'" : '';
$query=mysql_query("select count(*) as sm from keti $where");
$row=mysql_fetch_array($query);
$count=$row['sm']; //总记录数

$query=mysql_query("select * from keti $where order by id asc limit $offset,$list_num") or die ("fail");

44 到 56 行改成
mysql_query("set names 'GB2312'");
$where = (isset($surplus) && strlen($surplus)>0) ? " where surplus='$surplus'" : '';
$query=mysql_query("select count(*) as sm from keti $where");
$row=mysql_fetch_array($query);
$count=$row['sm']; //总记录数

$query=mysql_query("select * from keti $where order by id asc limit $offset,$list_num") or die ("fail"); 可以计算了!太好了,这样改不会影响其他的内容吧?

44 到 56 行改成
mysql_query("set names 'GB2312'");
$where = (isset($surplus) && strlen($surplus)>0) ? " where surplus='$surplus'" : '';
$query=mysql_query("select count(*) as sm from keti $where");
$row=mysql_fetch_array($query);
$count=$row['sm']; //总记录数

$query=mysql_query("select * from keti $where order by id asc limit $offset,$list_num") or die ("fail"); 还有一个小问题,我一点“可选”,内容可以正常显示,但是“可选”和“不可选”的form表单里就弹回到不可选了?like this


点“可选”后,又弹回不可选。



声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。