iT邦幫忙

0

PHP和Jquery參數傳遞

jquery

<script type="text/javascript">
$(document).ready(function(){
  $(".change").each (function(i){
  $(this).on("click", {x:(i+1)}, function(event){
  
  alert( event.data.x);
  
   });
   });
});
</script>

想請問我用for迴圈執行以下這行,每個id="change'.$day.'",請問要怎麼傳遞到jquery的
#change 謝謝..兩段語法在同頁面

$day=1;
 
        for($x=0;$x<=41;$x++){
    	
        	
    	     echo'<div data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap" id="change'.$day.'" style="background-color:'.$color.';opacity:'.$dark.';width:120.6px;height:160px;float:left;border:#FFFFFF 1px solid;">'."[$day]".'<p id="window'.$day.'">1233</p></div>';
    	    
    	     
    	     ++$day;
 
    	
    	
    	}

boostrap資料

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header" style="background-color:#88AA00">
        <h5 class="modal-title" id="exampleModalLabel" >借教室登記</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">×</span>
        </button>
      </div>
      <div class="modal-body">
        <form>
          <div class="form-group">
            <label for="recipient-name" class="col-form-label">姓名:</label>
            <input type="text" class="form-control" id="recipient-name">

          </div>
          <div class="form-group">
            <label for="message-text" class="col-form-label">借用時間:</label>
            <textarea class="form-control" id="message-text"></textarea>
          </div>
        </form>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Send message</button>
      </div>
    </div>
  </div>
</div>
看更多先前的討論...收起先前的討論...
你為什麼不用class而要用id?
另外我建議你……html的部份僅量少用echo來寫。
尤其你如果有用ide之類的編輯器的話,會無法解析html的內容。
mayyola iT邦研究生 2 級 ‧ 2018-01-24 16:52:10 檢舉
可樂快跑~其實剛用class也可以耶,可是要怎麼帶入比較好?
我剛試只有第2欄可以點出modal視窗(iphone),但網頁跟android手機是點每個欄都可以點出modal視窗(iphone) ..
<script type="text/javascript">
$(document).ready(function(){
$("#change2").click(function(){
$("#window2").slideToggle();
});
});
我想請問甚麼事ide
如果少用echo那應該要把那行用php分段寫嗎?
louischou iT邦新手 4 級 ‧ 2018-01-24 17:02:52 檢舉
我的話比較喜歡
1. 事件統一用同一個class
2. 每個有class的按鈕另外給一個「data-event」一類的東東
3. jquery運作時用attr找「data-event」的資料去對應後續動作
我之前在你其他問題寫的sample不是有展示了不使用echo來呈現html的寫法了?
我覺得你有必要把那些東西學起來。
不然你的code就會難分難解………
你學的痛苦,別人看的也會痛苦。

再來,你html用了class……你jquery卻沒有宣告class的event啊!
最後,IDE是「整合開發環境」
一種可以即時幫你看出程式碼問題的編輯器。
像是netbeans、eclipse、phpstorm、vs code這些……
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
I code so I am
iT邦高手 1 級 ‧ 2018-01-25 10:51:41

個人建議使用類似 handlebar.js 的 template library, 把 html 包起來,然後透過 ajax 自 PHP 取得一個陣列,再套用在 html 上,程式就會比較易維護,且減少錯誤發生的機率。
可以參考 http://handlebarsjs.com/

我要發表回答

立即登入回答