台灣最大程式設計社群網站
線上人數
514
 
會員總數:245403
討論主題:189190
歡迎您免費加入會員
討論區列表 >> PHP >> post傳送顯示值方式
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
post傳送顯示值方式
價值 : 10 QP  點閱數:938 回應數:8

樓主

泡泡糖
門外漢
0 5
114 3
發送站內信

您好:
請問有一個下拉式選單 在shop1.php選完後form方式用post把表單傳到另一個shop2.php頁面

一般post只傳送value 但想在shop2.php 可以顯示文字的顯示值也就是能夠顯示出英國 美國等文字 而不是數字100 200的數值

<form action="" name="sort1" method="post">
您選擇的是:
<Select name="sort" onchange="cal()">
<Option Value="0"></Option>
<Option Value="100">英國</Option>
<Option Value="200">美國</Option>
<Option Value="300">日本</Option>
<Option Value="200">中國</Option>
</Select>
</form>;





搜尋相關Tags的文章: [ PHP ] , [ 下拉式選單 ] , [ 顯示值 ] , [ POST ] ,
本篇文章發表於2016-04-06 12:06
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

彩虹
檢舉此回應
首先,你都知道傳遞的是value了,所以再另一頁當然不知道到是英國還美國

第1個方式:如果<option>是資料庫帶出來的,那你下ㄧ頁就將值(100)帶到資料表撈出中文(英國)

第2個方式:自行加上判斷吧



第3個方式:直接將value改成英國、美國 等等。

本篇文章回覆於2016-04-06 14:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

泡泡糖
檢舉此回應
感謝彩虹幫忙解答
1.沒用資料 只用PHP方式傳遞
2.美國與中國的值都是200 ,若有兩個值相同swotch好像沒辦法用
3.因數值value另有用途會拿來計算 所以沒辦法把數值value改成文字text
本篇文章回覆於2016-04-06 15:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
大多數都是會用定義式的模式為主。而value則是儲存資料用。

如果不需要儲存。就直接傳送text值就好。

一般為何會將值化為英數的原因。主要的重點不無有下原因

1.編碼的問題。(也就是中文字的問題)
2.傳送容量降低問題。(畢竟傳送英數比較單純,也可以用比較少的位元數傳送)

所以,大多數來說,下拉值都是固定的一種定義。
如果多值定義,絕大多數都是用程式來宣告或是資料庫處理。

所以當傳送了某個代碼,只要將代碼對應顯示文字出來就好了。

如可以在一個共用區先宣告好



這樣子你就算只是傳送vlaue值。只要帶入對應就可以出現你要顯示的text值。這是一般常用的方式。
如果不想這樣使用。其實也可以在value值中動手腳。雖然是不太建議這樣做。


這樣子你傳送到另一個頁面後,就可以用拆解explode的命令處理。
但並不太建議這樣子做。用一個公用變數宣告會比較安全。
本篇文章回覆於2016-04-06 15:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
依照你的回答。那在規劃上本身就很有問題了喔。
我言盡於此了。自已去思考一下看看吧。
本篇文章回覆於2016-04-06 15:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
我還是說一下好了。

value其值一定要有其唯一性。要不然你要怎麼給下一頁知道呢??
所以光美國與中國的值都是200,本身就有很大的問題了。
除非你像我#3回答的那樣。用<Option Value="100,英國">英國</Option>
這樣至少還是有其唯一性。
沒唯一性的下拉選項,這真的是......拿來做什麼啊。
本篇文章回覆於2016-04-06 15:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
最有價值解答

彩虹
檢舉此回應
TO 泡泡糖:
如果你沒有辦法給valueㄧ個唯一值

那你有試著把思維轉換一下嗎

下拉選項value給中文 (但有可能會像星空版主說的,會有編碼的問題。(也就是中文字的問題))



接收端
本篇文章回覆於2016-04-06 15:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Qinghua
檢舉此回應
這邊先問一下為何美國跟中國value都是200 ??
這樣設計問題還蠻大的.......
若之後要做資料處理這樣定義不會混亂嗎?
給個唯一值八
話說回來單純post要取得option text值就如上面兩位大大所說就在php端用switch去判斷傳進來的value是多少,然後給相對應的值就好......
或是也可用jquery來取的option text值,然後透過ajax post到後端給php也是一種方法
本篇文章回覆於2016-04-08 10:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

泡泡糖
檢舉此回應
感謝各位幫忙 問題已經解決了 謝謝
本篇文章回覆於2016-04-11 14:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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