查看完整版本: 關於在JS裡取得參數方法(已解決)
頁: [1]

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時也能傳入/得到/使用,
查了一下不曉得是否跟閉包的概念有關,只是我還不太了解。
所以不知是否有人有好的方法?謝謝。

<body>
  foreach (...as value)
  {
        <div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
  }

  <div class="editBox" display:none;>
        <textarea> </textarea>
        <div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
        <div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
  </div>

  <script>
        //var globalID;                不使用
        function showEdit(id)
        {        
                //globalID = id;        不使用
                $('.editBox').attr('display',"");
                //$('xxx').attr('value',id);        不使用
        }
        function update()
        {
                ....
                $ajax{....}
        }
        function cancel()
        {
                $('.editBox').attr('display',"none");
        }
  </script>
</body>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

hsw1976 發表於 2019-8-11 10:38 PM

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

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

y2314178y 發表於 2019-8-11 11:34 PM

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

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


1.你說的是這個嗎? <div class='locked'>下載: <em>訪客無法瀏覽下載點,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

y2314178y 發表於 2019-8-12 08:09 PM

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

目前有人有提出我想達成的方法
function showEdit(id)
{        
    $('.editBox').attr('display',"");
    $('#update').unbind('click').on('click', update);
    $('#cancel').unbind('click').on('click', cancel);
  function update()
  {
    //使用id參數
    $ajax{....}
  }
  function cancel()
  {
    //使用id參數
    $('.editBox').attr('display',"none");
  }
}

0919739831 發表於 2019-8-15 09:48 PM

本帖最後由 0919739831 於 2019-8-15 09:54 PM 編輯

y2314178y 發表於 2019-8-12 08:09 PM static/image/common/back.gif
目前有人有提出我想達成的方法
不知道這樣有甚麼用意?當我點擊showEdit的時候我就更新 update 的 parameter,
不就會傳入了
<br><br><br><br><br><div></div>
頁: [1]