台灣最大程式設計社群網站
線上人數
1860
 
會員總數:244785
討論主題:188836
歡迎您免費加入會員
討論區列表 >> PHP >> 新手上路 下拉式選單排序
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
新手上路 下拉式選單排序
價值 : 15 QP  點閱數:879 回應數:10

樓主

Vancer
門外漢
0 3
51 8
發送站內信

想要在下拉式選單做ASC,DESC的排序 圖片右上角的功能
目前沒有頭緒 拜託高手們協助~
<code>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>List</title>

</head>

<body style='text-align:center' >
<form action="load.php" method="post">
輸入資料<input type:"text" name="輸入資料" />
<input type="file" name="多筆" />
<Input Type="Submit" Value="確認傳送">
</form>

<form>

排序<select name="book">
 <option value="Isbn">ISBN</option>
 <option value="Press">出版社</option>
 <option value="Name">書名</option>
 <option value="Author">作者</option>
<option value="Pricing">定價</option>
<option value="Releasedate">發行日</option>

</select>
方向<select name="direction">
 <option value="asc">ASC</option>
 <option value="desc">DES</option>

</select>
</form>
<table width="800" border="1" align="center">

<tr>
<td>ISBN</td>
<td>出版社</td>
<td>書名</td>
<td>作者</td>
<td>定價</td>
<td>發行日</td>
<td>編輯/刪除</td>

</tr>

<?php
$content=file("newfile.txt");//取出資料
for ($i=0; $i<sizeof($content); $i++){
$str = explode(',', $content[$i]); // 共i個,去除”,”後存入$string[$i]
?>
<tr>

<td><?php echo $str[0]?></td>
<td><?php echo $str[1]?></td>
<td><?php echo $str[2]?></td>
<td><?php echo $str[3]?></td>
<td><?php echo $str[4]?></td>
<td><?php echo $str[5]?></td>


<td>
<form action="edit1.php?num=<?php echo $i ?>"method="post" >
<button name="修改" type="submit"> EDIT </button>
</form>
<form action="del.php?num=<?php echo $i ?>" method="post" >
<button name="刪除" type="submit">DEL </button>
</form>

</td>

</tr>
<?php }?>

</table>

<form action="insert1.php" method="post">
<button name="ADD" type="submit"> ADD </button>
</form>
<form action="outfile.php" method="post">
<button name="outfile" type="submit"> 匯出 </button>
</form>


</body>
</html>

</code>




搜尋相關Tags的文章: [ PHP下拉式選單 排序 ] ,
本篇文章發表於2017-06-13 22:38
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
你要了解資料庫跟SQL語法。
本篇文章回覆於2017-06-13 23:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小兔
檢舉此回應
你好 事先忘記說明 這題要求不用到MySQL
本篇文章回覆於2017-06-14 06:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小魚
檢舉此回應
不用到MySql,那你的資料存在哪裡?
本篇文章回覆於2017-06-14 07:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

彩虹
檢舉此回應
我想你是會錯意了,根本不會有人會去使用txt檔來當作資料庫

老師的用意應該是要你做到以下幾件事情
1.如何將txt檔的資料,匯入到資料庫
2.如何將資料庫的書籍資料,匯出成txt檔

剩下什麼排序、新增、修改、刪除,這些都是針對資料庫來做操作的

如果真的老師要你以txt檔當作資料庫
那我覺得這老師不用當了? (咦?

因為完全沒意義阿,我連寫下去的動力都沒有


本篇文章回覆於2017-06-14 08:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

小兔
檢舉此回應
彩虹大 你說的意思我了解 但老師出的上一個作業是像你說的那樣 所以我想這個作業真的是把TXT當資料庫 雖然我不知道用意是什麼><
本篇文章回覆於2017-06-14 10:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
這是一個作業,目的是要讓他了解file命令的應用跟陣列的處理。
所以不要叫人家用sql了。因為這個作業就是不能用sql。

由於是作業,我就不直接提供程式碼了,只給你方向。
你要先學習參考的東西有如下

1.讀取檔案內容:php的檔案取用有非常多種方式。你可以先查一下看看哪種方式比較適合你。

2.文字轉成陣列:這是為了讓你方便在程式堸竣@些排序的動作。也比較容易區分清楚。

3.迴圈的應用處理:

4.寫入檔案:

這些php函數先一個一個找出來。然後再去思考要怎麼去組合。

@彩虹:
不要隨便罵人家老師不用當,這題目可是出的很高明的。
帶入引用法的處理。從中去了解學生有沒有列觀念及欄位觀念。
並學習其陣列的排序用法跟檔案的讀寫。
本篇文章回覆於2017-06-14 11:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

彩虹
檢舉此回應
可能我想的太遠了...
正所謂認真就輸了 XD

先跟老師道歉一下 (跪)
本篇文章回覆於2017-06-14 11:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

小兔
檢舉此回應
排序做出來 但問題是沒辦法在主頁上呈現 還有如何讓兩個選單的值能一起送 因為我目前是送"排序"選單的過去分頁判斷
麻煩高手幫忙看看了 有點小急
<code>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>List</title>

</head>

<body style='text-align:center' >
<form action="load.php" method="post" enctype="multipart/form-data">
<input type="file" name="myfile" id="myfile" /><br/>
<input type="Submit" Value="傳送檔案">
</form>


<form name="form1" action="" method="post">
排序<select name="book" >
 <option value="Isbn">ISBN</option>
 <option value="Press">出版社</option>
 <option value="Name">書名</option>
 <option value="Author">作者</option>
<option value="Pricing">定價</option>
<option value="Releasedate">發行日</option>

</select>

<form name="form2" method="post">
方向<select name="direction">
 <option value="asc">ASC</option>
 <option value="desc">DES</option>

</select>
<input type="submit" name="Submit" value="決定" onclick="form1.action='updown.php'">

</form>
</form>

<table width="800" border="1" align="center">

<tr>
<td>ISBN</td>
<td>出版社</td>
<td>書名</td>
<td>作者</td>
<td>定價</td>
<td>發行日</td>
<td>編輯/刪除</td>

</tr>

<?php
$content=file("newfile.txt");//取出資料
for ($i=0; $i<sizeof($content); $i++){
$str = explode(',', $content[$i]); // 共i個,去除”,”後存入$string[$i]
?>
<tr>

<td><?php echo $str[0]?></td>
<td><?php echo $str[1]?></td>
<td><?php echo $str[2]?></td>
<td><?php echo $str[3]?></td>
<td><?php echo $str[4]?></td>
<td><?php echo $str[5]?></td>


<td>
<form action="edit1.php?num=<?php echo $i ?>"method="post" >
<button name="修改" type="submit"> EDIT </button>
</form>
<form action="del.php?num=<?php echo $i ?>" method="post" >
<button name="刪除" type="submit">DEL </button>
</form>

</td>

</tr>
<?php }?>

</table>

<form action="add.php" method="post">
<button name="ADD" type="submit"> ADD </button>
</form>
<form action="outfile.php" method="post">
<button name="outfile" type="submit"> 匯出 </button>
</form>


</body>
</html>
</code>

<code>

<?php

function sortBooksBy($books, $attr)
{
// $attr must be string type. ('isbn', 'press',....and so on)
switch ($attr) {
case "isbn":
usort($books, function($book1, $book2){
return ($book1["isbn"] >= $book2["isbn"]) ? 1 : -1; // ASC
// return ($book1["isbn"] >= $book2["isbn"]) ? -1 : 1; // DSC
});
break;

case "press":
usort($books, function($book1, $book2){
return ($book1["press"] >= $book2["press"]) ? 1 : -1; // ASC
// return ($book1["press"] >= $book2["press"]) ? -1 : 1; // DSC
});
break;

case "name":
usort($books,function($book1,$book2){
return($books["name"] >=
$book2["name"]) ? 1 : -1;
});
break;

case "author":
usort($books,function($book1,$book2){
return($books["author"] >=
$book2["author"]) ? 1 : -1;
});
break;

case "pricing":
usort($books,function($book1,$book2){
return($books["pricing"] >=
$book2["pricing"]) ? 1 : -1;
});
break;

case "releasedate":
usort($books,function($book1,$book2){
return($books["releasedate"] >=
$book2["releasedate"]) ? 1 : -1;
});
break;

}
return $books;
}

// for isbn sort
$content = file("newfile.txt");//取出資料
echo '<br>';

$books = [];
foreach ($content as $key => $value) {
$row = explode(',', $value);
array_push($books, [
"isbn" => $row[0],
"press" => $row[1],
"name" => $row[2],
"author" => $row[3],
"pricing" => $row[4],
"releasedate" => $row[5]

]);

}
$books = sortBooksBy($books, "Isbn");
print_r($books);
//$file=fopen("test.txt","w+");
// $select=$_POST['book'];
// switch($select){
// case "Isbn":
// $books = sortBooksBy($books, "Isbn");
//
// break;
//
// case "Press":
// $books = sortBooksBy($books, "press");
// break;
//
// case "Name":
// $books = sortBooksBy($books, "name");
//
// break;
// case "Author":
// $books = sortBooksBy($books, "author");
//
// break;
// case "Pricing":
// $books = sortBooksBy($books, "pricing");
//
// break;
// case "Releasedate":
// $books = sortBooksBy($books, "releasedate");
//
// break;
//
// }
//header("location:index.php");
?>

</code>
本篇文章回覆於2017-06-15 20:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

迷路
捐贈 VP 給 迷路 檢舉此回應
請愛用程式標籤+正確的縮排,謝謝
http://www.blueshop.com.tw/board/FUM20041006152641OLG/BRD20081107145230A5O.html

程式碼太亂了,請先好好整理一下吧
選擇排序的兩個下拉居然還有form包form,這是哪招?
還有,修改和刪除不需要用form來送出
你希望排序能顯示在主頁而非其他頁面
那功能就寫在主頁,然後讓form送出的目標為主頁啊
本篇文章回覆於2017-06-16 09:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

小兔
檢舉此回應
已經解決囉! 謝謝大家!
本篇文章回覆於2017-07-01 11:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.