PHP 板


LINE

看板 PHP  RSS
我是PHP新手鞭小力点~~ 我有一个资料表 内有20个栏位 每个栏位和内容全部ECHO出来没问题 那现在我想做一个功能是 使用者可选择他想看哪些栏位 例如我有栏位A 栏位B 栏位C 我原本的网页是每个栏位都印出来 那我想让使用者可选择只想显示的栏位,例如可挑选显示A C 或 B C栏位 我想呈现的形式是做核取方块Checkbox让使用者去勾, 痾但想来想去没什麽方向... 因为也不是要存资料库是要看勾选的去显示资料和栏位 这只是我想到的一种形式,当然如果有更好或说更容易的方式希望大家给我建议 希望给点方向,谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.221.217.28
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1438054856.A.4AD.html
1F:→ teli: display:none 07/28 11:48
2F:推 hareion08: SELECT `栏位1`,`栏位2` FROM `table` 07/28 11:49
3F:推 jhunkyoiori: 这是Javascript的事 07/28 11:52
4F:→ asd56799001: 回楼上,好像是这样..想想这跟後台没关系 07/28 11:53
5F:→ RedMapleWing: 全部拉出来再切换要显示的内容,那是javascript 07/28 12:04
6F:→ RedMapleWing: 但如果是会跳页,根据条件重拉,那是php也没错 07/28 12:05
7F:→ MOONRAKER: 就checkbox给user勾一勾,form送回来看他勾什麽 07/28 12:10
8F:推 clerkhsiao: dataTable.js 07/28 13:03
9F:→ MOONRAKER: 有勾的就加到SELECT stmt里面 记得养成sanitation的 07/28 13:17
10F:→ MOONRAKER: 好习惯 form送回来的字串比对以後才能用 07/28 13:17
11F:→ MOONRAKER: 以基本练习而言这样最直接 js啥的以後再玩就好 07/28 13:18
$sql="SELECT * FROM bag WHERE id = '{$conid}' "; $result=mysql_query($sql); //如果查到的记录笔数大於 0, 便使用回圈显示所有资料 if (mysql_num_rows($result) >0){ echo "<table border='1' > <tr> <td>序号</td> <td>发包日期</td> <td>专案别</td> ..... </tr>"; while ($row = mysql_fetch_array($result)) { echo "<tr><td>{$row['序号']}</td> <td>{$row['发包日期']}</td> <td>{$row['专案别']}</td> ... </tr>"; } echo '</table>'; } 以上是原始的程式码 <?php $field = $_POST ["field"]; //$myallsport = implode (",", $field); //echo $myallsport; if (isset($field)) { for($i=0;$i<Count($field);$i++) { echo $field[$i] . "<br>"; } } ?> <form method="post" action="<?php $_SERVER["PHP_SELF"] ?>"> 请勾选您想显示的项目<br> <input type="checkbox" name="field[]" value="序号" > 序号<br> <input type="checkbox" name="field[]" value="发包日期" > 发包日期<br> <input type="checkbox" name="field[]" value="专案别" > 专案别<br> <input name="submit" type="submit" value="送出" class="myButton" /> </form> 目前可以做到勾什麽显示什麽 放到sql描述的话 $sql="SELECT * $field[$i] FROM bag WHERE id = '{$conid}' "; 这样方向对吗? 试了一下 痾 好像不能这样写...
12F:→ asd56799001: 不太懂sanitation?环境卫生? 07/28 14:35
※ 编辑: asd56799001 (61.221.217.29), 07/28/2015 14:48:32
13F:→ MOONRAKER: sanitation就是说 建一个table内栏位表 然後form收回来 07/28 14:36
14F:→ MOONRAKER: 的栏位名称跟这个表对照 有符合的才写进SQL里面 07/28 14:37
15F:→ MOONRAKER: 不然别人把form内容改掉再submit 你就可能被黑 07/28 14:38
※ 编辑: asd56799001 (61.221.217.29), 07/28/2015 14:57:59
16F:→ asd56799001: 你的意思是勾选的栏位再建一个表去新增进去 07/28 15:02
17F:→ asd56799001: 然後再跟原本的表比对才写进SQL,是这意思吗? 07/28 15:04
18F:→ asd56799001: 想问这功能有什麽关键字吗?依描述查都偏蛮多的.. 07/28 15:25
19F:→ MOONRAKER: 不是资料表啦 就一个阵列啦 07/28 15:29
20F:→ MOONRAKER: 有那种函数可以得知资料表里面有哪些栏位 查好变成一个 07/28 15:29
21F:→ MOONRAKER: 阵列以後 逐个检查form收回来的栏位名有没有在里面 07/28 15:30
22F:→ MOONRAKER: 检查通过的栏位名字才把他implode起来组成SQL述句 07/28 15:31
23F:→ MOONRAKER: 然後才查询 在此之前都不是资料库的工作 07/28 15:32
24F:→ MOONRAKER: 这步很重要但是对练习而言有点麻烦 可以暂时先跳过 07/28 15:34
25F:→ asd56799001: 我已经可以做到勾甚麽查什麽内容了 07/31 17:09
26F:→ asd56799001: 但我上面的栏位表格无法看到我下面的变数 07/31 17:10
27F:→ asd56799001: 因为我是靠那笔栏位有没有该内容去显示内容的Y 07/31 17:10
<html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <link rel="stylesheet" type="text/css" href="table_CSS.css" /> <title>此专案内容总览</title> <style type="text/css"> </style> <script src="OpenWin.js"></script> </head> <body> <?php $conid = $_GET['conid']; $cyear = $_GET['cyear']; $positionid = $_GET['positionid']; ?> <input type ="button" onclick="javascript:location.href='year.php'" value="回 首页"> <input type ="button" onclick="history.back()" value="回到上一页"></input> <input type ="button" onclick="javascript:location.href= 'indeXa.php?anme=add&&newcaseid=<?php echo $conid; ?>&&cyear=<?php echo $cyear; ?>&&positionid=<?php echo $positionid; ?>'" value="建立新内容"> <input type="button" onclick="OpenWin('checkbox9_1.html')" value="选择欲显示的 栏位" ><br> <!----<input type="checkbox" onclick="var yes = getElementById('yes'); yes.style.display=yes.style.display=='none'?'':'none';"/>----> <form name="XXX" method="post" action="<?php $_SERVER["PHP_SELF"] ?>"> <input type="checkbox" name="sport[]" value="序号"><label>序号</label><br> <input type="checkbox" name="sport[]" value="发包日期"><label>发包日期 </label><br> <input type="checkbox" name="sport[]" value="专案别"><label>专案别</label><br> <input type="checkbox" name="sport[]" value="发案者"><label>发案者</label><br> <input type="checkbox" name="sport[]" value="委外类别"><label>委外类别 </label><br> <input type="checkbox" name="sport[]" value="委外工作内容"><label>委外工作内容 </label><br> <input type="checkbox" name="sport[]" value="外包人员"><label>外包人员 </label><br> <input type="checkbox" name="sport[]" value="外包金额"><label>外包金额 </label><br> <input type="checkbox" name="sport[]" value="分期"><label>分期</label><br> <input type="checkbox" name="sport[]" value="比例"><label>比例</label><br> <input type="checkbox" name="sport[]" value="分期金额"><label>分期金额 </label><br> <input type="checkbox" name="sport[]" value="扣款"><label>扣款</label><br> <input type="checkbox" name="sport[]" value="扣款事由"><label>扣款事由 </label><br>銔N<html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <link rel="stylesheet" type="text/css" href="table_CSS.css" /> <title>此专案内容总览</title> <style type="text/css"> </style> <script src="OpenWin.js"></script> </head> <body> <?php $conid = $_GET['conid']; $cyear = $_GET['cyear']; $positionid = $_GET['positionid']; ?> <input type ="button" onclick="javascript:location.href='year.php'" value="回 首页"> <input type ="button" onclick="history.back()" value="回到上一页"></input> <input type ="button" onclick="javascript:location.href= 'indeXa.php?anme=add&&newcaseid=<?php echo $conid; ?>&&cyear=<?php echo $cyear; ?>&&positionid=<?php echo $positionid; ?>'" value="建立新内容"> <input type="button" onclick="OpenWin('checkbox9_1.html')" value="选择欲显示的 栏位" ><br> <!----<input type="checkbox" onclick="var yes = getElementById('yes'); yes.style.display=yes.style.display=='none'?'':'none';"/>----> <form name="XXX" method="post" action="<?php $_SERVER["PHP_SELF"] ?>"> <input type="checkbox" name="sport[]" value="序号"><label>序号</label><br> <input type="checkbox" name="sport[]" value="发包日期"><label>发包日期 </label><br> <input type="checkbox" name="sport[]" value="专案别"><label>专案别</label><br> <input type="checkbox" name="sport[]" value="发案者"><label>发案者</label><br> <input type="checkbox" name="sport[]" value="委外类别"><label>委外类别 </label><br> <input type="checkbox" name="sport[]" value="委外工作内容"><label>委外工作内容 </label><br> <input type="checkbox" name="sport[]" value="外包人员"><label>外包人员 </label><br> <input type="checkbox" name="sport[]" value="外包金额"><label>外包金额 </label><br> <input type="checkbox" name="sport[]" value="分期"><label>分期</label><br> <input type="checkbox" name="sport[]" value="比例"><label>比例</label><br> <input type="checkbox" name="sport[]" value="分期金额"><label>分期金额 </label><br> <input type="checkbox" name="sport[]" value="扣款"><label>扣款</label><br> <input type="checkbox" name="sport[]" value="扣款事由"><label>扣款事由 </label><br>銔N <input type="checkbox" name="sport[]" value="实付金额"><label>实付金额 </label><br> <input type="checkbox" name="sport[]" value="交件日期"><label>交件日期 </label><br> <input type="checkbox" name="sport[]" value="请款日期"><label>请款日期 </label><br> <input type="checkbox" name="sport[]" value="付款日期"><label>付款日期 </label><br> <input type="checkbox" name="sport[]" value="请款凭据"><label>请款凭据 </label><br> <input type="checkbox" name="sport[]" value="备注"><label>备注</label><br> <input type=submit name=ok value="送出"><br> <form> <?php @header('Content-Type: text/html; charset=utf-8'); include("mysql.inc.php"); if ($conid !='' ){ $sql="SELECT * FROM `case` WHERE id = '{$conid}' "; $result=mysql_query($sql); $row_3=mysql_fetch_array($result); $concaid=$row_3['caseid']; echo "<a href='year.php'>$cyear</a>a\鵔懒 <input type="checkbox" name="sport[]" value="实付金额"><label>实付金额 </label><br> <input type="checkbox" name="sport[]" value="交件日期"><label>交件日期 </label><br> <input type="checkbox" name="sport[]" value="请款日期"><label>请款日期 </label><br> <input type="checkbox" name="sport[]" value="付款日期"><label>付款日期 </label><br> <input type="checkbox" name="sport[]" value="请款凭据"><label>请款凭据 </label><br> <input type="checkbox" name="sport[]" value="备注"><label>备注</label><br> <input type=submit name=ok value="送出"><br> <form> <?php @header('Content-Type: text/html; charset=utf-8'); include("mysql.inc.php"); if ($conid !='' ){ $sql="SELECT * FROM `case` WHERE id = '{$conid}' "; $result=mysql_query($sql); $row_3=mysql_fetch_array($result); $concaid=$row_3['caseid']; echo "<a href='year.php'>$cyear</a>a\鵔懒 //做一个栏位阵列 $sql = "select * from bag"; $result = mysql_query($sql); $arr = mysql_num_fields($result) -1; //取得栏位总数去id栏位 for ($i=0;$i<=$arr;$i++){ $fields[] = mysql_field_name($result,$i);//取得指定栏位的名称函数 } if(!empty($_POST ['sport'])){ $sport = $_POST ['sport']; } else{ $sport = split("," , "序号,发包日期,专案别,发案者,委外类别,委外工作内容,外包 人员,外包金额,分期,比例,分期金额,扣款,扣款事由,实付金额,交件日期,请款日期,付款 日期,请款凭据,备注"); } $result777 = array_intersect ($sport, $fields); //$sql="SELECT * FROM bag WHERE id = '{$conid}' "; $sql="SELECT ".implode (",", $result777)." FROM bag WHERE id = '{$conid}' "; $result=mysql_query($sql); //如果查到的记录笔数大於 0, 便使用回圈显示所有资料 if (mysql_num_rows($result) >0){ echo "<table border='1' >"; echo "<tr>"; echo "<td>序号</td>"; echo "<td>发包日期</td>"; echo "<td>专案别</td>"; echo "<td>发案者</td>"; echo "<td>委外类别</td>"; echo "<td>委外工作内容</td>"; echo "<td>外包人员</td>"; echo "<td>外包金额</td>"; echo "<td>分期</td>"; echo "<td>比例</td>"; echo "<td>分期金额</td>"; echo "<td>扣款</td>"; echo "<td>扣款事由</td>"; echo "<td>实付金额</td>"; echo "<td>交件日期</td>"; echo "<td>请款日期</td>"; echo "<td>付款日期</td>"; echo "<td>请款凭据</td>"; echo "<td>备注</td>"; echo "</tr>"; while ($row = mysql_fetch_array($result)) { echo "<tr>"; if($row['序号']!=""){echo "<td>{$row['序号']}</td>";} echo "<td>{$row['发包日期']}</td>"; echo "<td>{$row['专案别']}</td>"; echo "<td>{$row['发案者']}</td>"; echo "<td>{$row['委外类别']}</td>"; echo "<td>{$row['委外工作内容']}</td>"; echo "<td>{$row['外包人员']}</td>"; echo "<td>{$row['外包金额']}</td>"; echo "<td>{$row['分期']}</td>"; echo "<td>{$row['比例']}</td>"; echo "<td>{$row['分期金额']}</td>"; echo "<td>{$row['扣款']}</td>"; echo "<td>{$row['扣款事由']}</td>"; echo "<td>{$row['实付金额']}</td>"; echo "<td>{$row['交件日期']}</td>"; echo "<td>{$row['请款日期']}</td>"; echo "<td>{$row['付款日期']}</td>"; echo "<td>{$row['请款凭据']}</td>"; echo "<td>{$row['备注']}</td>"; echo "<td><input type=submit name=ok value='删除' onclick=\"if(confirm('您确定送出吗?')) { window.location.href='content_delete.php?del={$row['序号 ']}&&newcaseid={$conid}&&cyear=$cyear&&positionid=$positionid&&caseid=$caseid';return true}else return false\"> </td> <td><input type='button' value='编辑' onclick=\"self.location.href='indeXa.php?edit={$row['序号 ']}&&anme=edit&&newcaseid={$conid}&&cyear=$cyear&&positionid=$positionid'\"> </td></tr>"; $hhh = $row['id']; } echo "</table>"; } if($hhh == null){ echo "目前{$concaid}里并没有内容哦!请新增新内容哦!"; echo '<br>'; } else{//计算目前资料总笔数,如果有内容才计算 $sql="select * from bag WHERE id = '{$conid}'"; $result=mysql_query($sql); $row = mysql_num_rows($result) ; echo "目前总共有{$row}笔"; } ?> </body> </html> ※ 编辑: asd56799001 (61.221.217.28), 07/31/2015 17:16:20
28F:→ asd56799001: 顺便附上档案https://goo.gl/TQgExs希望各位大大帮忙 07/31 17:19
29F:→ asd56799001: 第98行if就是判断有无内容是否显示出来的 07/31 17:40
30F:推 xdraculax: 既然你资料栏位名称跟表格栏位名称一样,用捞出来的资 08/01 10:26
31F:→ xdraculax: 料栏位去跑回圈画表格吧 08/01 10:26







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP