台灣最大程式設計社群網站
線上人數
1095
 
會員總數:245001
討論主題:188957
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> 關於將變數傳給ajax data 使用的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於將變數傳給ajax data 使用的問題
價值 : 100 QP  點閱數:4697 回應數:7

樓主

蒼天浩月
初級專家
1383 284
5146 1312
發送站內信

請問底下這段程式碼 如何將 onchange的值 帶給ajax data裡面呢?


我將onchange的值 新增至hide2 的hidden 裡面查看 當我change時,會有什麼改變
結果發現,當我還沒下ajax時, hidden 底下的value 顯示是正常的
但我下了ajax之後,發現只會改變一次,再改變就沒反應了
這是為什麼? 有人有遇過嗎???

搜尋相關Tags的文章: [ 將變數指向ajax裡 ] ,
本篇文章發表於2016-03-23 21:57
== 簽名檔 ==
在學習的過程中沒有結束的一天.
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
$('#hide2').attr("value",$(this).val());
改成
$('#hide2').val($(this).val());

attr的屬性作用雖然的確可以操作vlaue。
但在實際用起來。很常發生不會改變的問題(針對value的部份)

我記得你另一篇的ajax分頁的問題我就有給你提到這個。你的bug可能就是在這堙C

另外就是我不建議你用input物件來存分頁值。可以的話。還是用直接參數來處理AQ
本篇文章回覆於2016-03-24 10:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
可惡~~~不小心去按到enter。

接續說下去。
可以的話,就直接用參數來做記錄還比較快。也安全。
反正都要ajax了。不用擔心參數消失的問題。
本篇文章回覆於2016-03-24 10:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

蒼天浩月
檢舉此回應
謝謝星空大大熱情的回覆
就在此時 我也將問題解決了
因為不知道ajax 接的值 必需要由server 端去傳送
昨天研究了好久想了一整晚到至今,終於知道問題在哪 ,也知道方向

也許對會的人來說 這根本不是問題,
但沒有做過就會有觀念上的誤解

我的client端 不止有分頁 還有一頁要顯示幾筆資料

我把做出來的程式 po出來

php


底下是ajax部份
本篇文章回覆於2016-03-24 10:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

蒼天浩月
檢舉此回應
更正將page_num放在$(function)上 才可正常執行
本篇文章回覆於2016-03-24 11:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
這媮椄O給你提示一下。

1.確實要在ajax內給值沒錯。但這也可以用data去給值的。不一定要用接值的方式。
雖然這樣會得要用post來接值就是了。

2.你的第一支程式的第4行。onchange="javascript:page_num(this.value)"是多餘的。
認真來說,你的第二支程式17~20行這一段,正常因該可以拉出來插入第2行內。
因為你的select id="page_num"理論上是不該有變動性的才對。(如果會有變動性重置的話就無所謂了)
所以可以直接綁定事件就行了。
你用這樣綁定,其實會跑多餘事件出來。不信的話。你可以在29行下插入alert("test");來試試
看是不是會產生多重跳訊息。雖然這在實際操作上沒感覺,但無形之中會增加不小的負載。
要知道,事件的綁定並不會覆蓋過去,而是會累加動作。

3.最後要糾正你這句話「因為不知道ajax 接的值 必需要由server 端去傳送」
我感覺你是誤解了ajax。ajax不可能可以控制後端的。
ajax的值,你都要當成是表單發送的模式。(要不然怎麼會有post跟get的指定呢??)
正確來說,是ajax的值都得透過ajax的data設定發送。
雖然還有一種是ajaxsubmit的動作,會自動依表單內的設定元件值自動發送。
但ajaxsubmit的原理。也是採用將表單值轉成data模式去送的。差點就是你不需要自行指定。
它會自動幫你轉換。
所以ajax要由server端去傳送這句話的說法是不對的。server最多只是接收而已。
ajax是前端程式,無法控制後端。它只能發送資料給後端交由後端處理後並接收後端傳回的資料。

總結:其實我是感覺你還是一直在自已的思維內。當然也不是說你不想照著我們說的做的就是不好的。
只是很多事情,有時要轉換一下想法,並了解一下我們說的東西,到底是什麼。為何我不直接提供程式碼給你
因為我發現你不了解其相關的特性。就像是你誤會了ajax是server端的應用處理的意思一樣。
而且程式內還加入了非jquery的東西。但又宣告一次。這點讓人有點難理解。
要說你不會,你又有寫出來。但你還同樣的在其元件上自定事件處理?
這樣不會擔心雙重動作嗎?
言盡於此了。
本篇文章回覆於2016-03-24 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

蒼天浩月
檢舉此回應
星空大大您好
我知道ajax 是從DATA將值傳到SERVER端
但也許是我的語意讓您造成誤會
我的情況簡單來說
下拉式選單 是從SERVER端傳回來的
但傳回來之後 還要再用AJAX將值傳到SERVER端 這個部份卡住
才會導致 問一些很白痴的問題(這個情況讓我回想到之前寫程式什麼都不會 不知道方向的時候 = =)

讓您誤以為 我在下拉式選單 多做一次AJAX 的用意

您的提醒 我剛剛修正了一下CODE
的確您提到的部份是多餘的,但多餘的部份不在於onchange="javascript:page_num(this.value)"
而是17~20行


本篇文章回覆於2016-03-24 14:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
這堥銋磞p果已經用jquery的情況下。

基本上我就不會在用原本javascript的on事件。
還是會用jquery來綁定事件處理。

這樣會比較容易區分。也比較不容易搞混。

不過開發的習慣是看在個人了,這點我就不給與評論。
本篇文章回覆於2016-03-25 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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