PHP 板


LINE

看板 PHP  RSS
我是PHP新手鞭小力點~~ 我有一個資料表 內有20個欄位 每個欄位和內容全部ECHO出來沒問題 那現在我想做一個功能是 使用者可選擇他想看哪些欄位 例如我有欄位A 欄位B 欄位C 我原本的網頁是每個欄位都印出來 那我想讓使用者可選擇只想顯示的欄位,例如可挑選顯示A C 或 B C欄位 我想呈現的形式是做核取方塊Checkbox讓使用者去勾, 痾但想來想去沒什麼方向... 因為也不是要存資料庫是要看勾選的去顯示資料和欄位 這只是我想到的一種形式,當然如果有更好或說更容易的方式希望大家給我建議 希望給點方向,謝謝 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.217.28
※ 文章網址: https://webptt.com/m.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燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP