[請益] 使用者可挑選想要顯示的欄位.如何做?
我是PHP新手鞭小力點~~
我有一個資料表
內有20個欄位
每個欄位和內容全部ECHO出來沒問題
那現在我想做一個功能是
使用者可選擇他想看哪些欄位
例如我有欄位A 欄位B 欄位C
我原本的網頁是每個欄位都印出來
那我想讓使用者可選擇只想顯示的欄位,例如可挑選顯示A C 或 B C欄位
我想呈現的形式是做核取方塊Checkbox讓使用者去勾,
痾但想來想去沒什麼方向...
因為也不是要存資料庫是要看勾選的去顯示資料和欄位
這只是我想到的一種形式,當然如果有更好或說更容易的方式希望大家給我建議
希望給點方向,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.221.217.28
※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1438054856.A.4AD.html
→
07/28 11:48, , 1F
07/28 11:48, 1F
推
07/28 11:49, , 2F
07/28 11:49, 2F
推
07/28 11:52, , 3F
07/28 11:52, 3F
→
07/28 11:53, , 4F
07/28 11:53, 4F
→
07/28 12:04, , 5F
07/28 12:04, 5F
→
07/28 12:05, , 6F
07/28 12:05, 6F
→
07/28 12:10, , 7F
07/28 12:10, 7F
推
07/28 13:03, , 8F
07/28 13:03, 8F
→
07/28 13:17, , 9F
07/28 13:17, 9F
→
07/28 13:17, , 10F
07/28 13:17, 10F
→
07/28 13:18, , 11F
07/28 13:18, 11F
$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}' ";
這樣方向對嗎?
試了一下
痾 好像不能這樣寫...
→
07/28 14:35, , 12F
07/28 14:35, 12F
※ 編輯: asd56799001 (61.221.217.29), 07/28/2015 14:48:32
→
07/28 14:36, , 13F
07/28 14:36, 13F
→
07/28 14:37, , 14F
07/28 14:37, 14F
→
07/28 14:38, , 15F
07/28 14:38, 15F
※ 編輯: asd56799001 (61.221.217.29), 07/28/2015 14:57:59
→
07/28 15:02, , 16F
07/28 15:02, 16F
→
07/28 15:04, , 17F
07/28 15:04, 17F
→
07/28 15:25, , 18F
07/28 15:25, 18F
→
07/28 15:29, , 19F
07/28 15:29, 19F
→
07/28 15:29, , 20F
07/28 15:29, 20F
→
07/28 15:30, , 21F
07/28 15:30, 21F
→
07/28 15:31, , 22F
07/28 15:31, 22F
→
07/28 15:32, , 23F
07/28 15:32, 23F
→
07/28 15:34, , 24F
07/28 15:34, 24F
→
07/31 17:09, , 25F
07/31 17:09, 25F
→
07/31 17:10, , 26F
07/31 17:10, 26F
→
07/31 17:10, , 27F
07/31 17:10, 27F
<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
→
07/31 17:19, , 28F
07/31 17:19, 28F
→
07/31 17:40, , 29F
07/31 17:40, 29F
推
08/01 10:26, , 30F
08/01 10:26, 30F
→
08/01 10:26, , 31F
08/01 10:26, 31F