伊莉討論區

標題: 關於在JS裡取得參數方法(已解決) [打印本頁]

作者: y2314178y    時間: 2019-8-11 12:42 PM     標題: 關於在JS裡取得參數方法(已解決)

本帖最後由 y2314178y 於 2019-8-12 08:09 PM 編輯

各位大大好,
有個程式功能為:點edit按鈕,此時會傳入此列的id給JS function,之後把 div 顯示出來。
按update按鈕時,把id與textarea的內容傳入給後端PHP做處理(更新資料庫)。
由於按update按鈕時需得到此編輯列的id(有很多列所以id都不同)。
請教問題:如何得到此id ?
條件1:js不使用全域變數
條件2:不要在showEdit()裡對元素新增屬性(ex: $('xxx').attr(value,id)),所以type="hidden"的input也不能用

不知是否有按edit時所傳入得id在按update時也能傳入/得到/使用,
查了一下不曉得是否跟閉包的概念有關,只是我還不太了解。
所以不知是否有人有好的方法?謝謝。
  1. <body>
  2.   foreach (...as value)
  3.   {
  4.         <a href="#" onclick="showEdit(value['id']);">edit</a>
  5.   }

  6.   <div class="editBox" display:none;>
  7.         <textarea> </textarea>
  8.         <a href="#" onclick="update();">update</a>
  9.         <a href="#" onclick="cancel();">cancel</a>
  10.   </div>

  11.   <script>
  12.         //var globalID;                不使用
  13.         function showEdit(id)
  14.         {        
  15.                 //globalID = id;        不使用
  16.                 $('.editBox').attr('display',"");
  17.                 //$('xxx').attr('value',id);        不使用
  18.         }
  19.         function update()
  20.         {
  21.                 ....
  22.                 $ajax{....}
  23.         }
  24.         function cancel()
  25.         {
  26.                 $('.editBox').attr('display',"none");
  27.         }
  28.   </script>
  29. </body>
複製代碼





作者: hsw1976    時間: 2019-8-11 10:38 PM

從你的程式碼中,看不到下列關鍵要素:

1. 為編輯列賦予 ID 的程式片段
2. 編輯列本身的程式片段
作者: y2314178y    時間: 2019-8-11 11:34 PM

hsw1976 發表於 2019-8-11 10:38 PM
從你的程式碼中,看不到下列關鍵要素:

1. 為編輯列賦予 ID 的程式片段

1.你說的是這個嗎? <a href="#" onclick="showEdit(value['id']);">edit</a> //這其實是需搭配smarty 才有辦法賦與id的
2.按edit鈕後其實在function showEdit(id)裡應該還要有一行是用來賦予textarea內容,不過我認為這一行跟我的問題沒甚麼太大相關所以我省略了
作者: y2314178y    時間: 2019-8-12 08:09 PM

本帖最後由 y2314178y 於 2019-8-12 08:10 PM 編輯

目前有人有提出我想達成的方法
  1. function showEdit(id)
  2. {        
  3.     $('.editBox').attr('display',"");
  4.     $('#update').unbind('click').on('click', update);
  5.     $('#cancel').unbind('click').on('click', cancel);
  6.   function update()
  7.   {
  8.     //使用id參數
  9.     $ajax{....}
  10.   }
  11.   function cancel()
  12.   {
  13.     //使用id參數
  14.     $('.editBox').attr('display',"none");
  15.   }
  16. }
複製代碼


作者: 0919739831    時間: 2019-8-15 09:48 PM

本帖最後由 0919739831 於 2019-8-15 09:54 PM 編輯
y2314178y 發表於 2019-8-12 08:09 PM
目前有人有提出我想達成的方法

不知道這樣有甚麼用意?當我點擊showEdit的時候我就更新 update 的 parameter,
不就會傳入了





歡迎光臨 伊莉討論區 (http://www25.eyny.com/) Powered by Discuz!