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

樓主

jan
門外漢
0 51
722 78
發送站內信


請問大大們
我做一個下拉式選單,內容是以陣列方式顯示(如: array('null'=>'無','green'=>'綠色','red'=>'糽色'))

foreach($array as $buf=>$bufa) {
echo "<option value='".$buf."'>".$bufa."</option>";
}
的方式取得資料
現在額外加一個 textbox用來填寫裡面沒有的資料 例如填寫藍色
是說如下拉選單選的是"無" 在textbox 中就自行填寫 藍色,textbox 可為NULL
資料庫中都是用同一個欄位
請問該如何讀寫值到DB中和如何判斷 這兩種選擇方式
謝謝




搜尋相關Tags的文章: [ 下拉選單 ] ,
本篇文章發表於2015-11-30 14:16
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
先確定一下你的基本知識

1.了解如何用表單嗎?如果是,請跳2。否請跳9。

2.了解sql語法嗎?如果是請跳3 。否請跳9。

3.知道字串切分陣列法數嗎??如explode。如果是請跳4。否請跳9

4.知道如何使用ajax嗎??如果是是跳5。否請跳9

5.知道如果重建html內的元件嗎??如果是請跳6,否請跳9

6.在該input內後置一段新建的按鍵。讓他跑ajax將輸入框的值傳入給php處理。

7.php內在判斷傳送值並做explode切分陣列處理。下達mysql新增語法。將資料新增到資料庫內。

8.取得新增後的資料,將其回傳回來給html第6部的ajax。並重建下拉式選單將新的值帶入處理。

9.請告知你是卡在那一段。並加強你的基本能力。這包含了php基本應用。javascript處理跟mysql應用。還有form表單應用處理。
本篇文章回覆於2015-11-30 18:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

jan
檢舉此回應
您好
我是初學者因工作關係第一次碰php程式,目前是在邊寫邊學,以參考前一手的程式來撰寫 對 html mysql 和jquery 有了解
以下是程式片段,卡在說如迴圈中選了"其他"這選項,則換其他inputbox中要填入資料進db,他們共用一個欄位
<script type="text/javascript" charset="utf-8">
$(function(){
$("#bs_type option[value=<?=$row['bs_type']?>]").attr("selected","selected");
$("#bs_field_code option[value=<?=$row['bs_field_code']?>]").attr("selected","selected");
});
</script>
本篇文章回覆於2015-12-03 11:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
為何我會用條例式來問你。

因為這個問題並不難。如果你真的有了解jquery的話。
簡單來說好了。

你將你要做的東西,分成兩個部份來看。
一個是顯示、一個是新增

目前你的程式碼上,可以知道的是顯示你是ok的。
但對於新增你完全不了解。

新增來說,其方式就如我6~8行說的。
你只要建立好input的事件。或是另外用個按鍵來處理新增動作。

利用ajax去觸發後端應用程式(php)將新的分類寫入到資料表內後,再將其資料回傳回來。
並重建你的select。這些都是jquery做的到的事。

php要做的事就是很單純的檢查是否有重覆、沒有的話就新增一筆資料進去。然後再將目前的資料集回傳回來。
剩下來的就是jquery的動作了。取得回傳後的資料來重建你的select。並指向他就行了。

另外一個方式,也就是你目前用的方式。
再建立新的對應資料的同時,先檢查該input內的分類是否有存在。沒有的話就直接新增。之後再來去建立資料。
如果只是記錄該分類id的話。在新增分類的同時也可以直接取得新的id並帶入到新資料內。

這樣下一次的新增資料,就會出現該新的分類可供選擇了。

另看你的程式碼,其實搞不太清楚你的第11行那個「其它」是做什麼用的。
它因該是在option內吧??

比較簡單的做法。就是你在第9行下。新增一個



然後在做新增資料時,先判斷該 bs_type2 是否為空值。(如果你選其它的話,它就會是空值)
如果是的話,就轉取txtother的資料,並對其分類表新增一筆資料就行了。(但要注意input有沒有輸入的問題,不要一直儲存空值)
本篇文章回覆於2015-12-03 16:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

彩虹
檢舉此回應
提供你比較簡單且理解的方式

第1步
在select裡面加上<option value="other">其他</option>
====================================================
第2步
透過jquery來判斷當<select>下拉式選擇「其他」時,
 $("input[name='txtother']").show();
else
 $("input[name='txtother']").hide();

並加上必填條件
====================================================
第3步
利用PHP去判斷當下拉式選擇「其他」時


這樣就能「共用一個欄位」
完全不會有衝突
====================================================
希望對您有幫助
本篇文章回覆於2016-01-11 18:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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