2017-04-04 24 views
0

這裏是我當前的代碼,jQuery的手風琴,但調用動態PHP腳本onclick

<div class="panel"> 
    <?php 
    if(isset($Uniid)) { 
     if (isset($from)) { 
      $url='Inevent.php'; 
      include("display$category.php"); 
     } 
    } 
    ?> 
</div>   


<script> 
document.addEventListener("DOMContentLoaded", function(event) { 
    var acc = document.getElementsByClassName("accordion"); 
    var panel = document.getElementsByClassName('panel'); 
    for (var i = 0; i < acc.length; i++) { 
     acc[i].onclick = function() { 
      var setClasses = !this.classList.contains('active'); 
      setClass(acc, 'active', 'remove'); 
      setClass(panel, 'show', 'remove'); 

      if (setClasses) { 
       this.classList.toggle("active"); 
       this.nextElementSibling.classList.toggle("show"); 
      } 
     } 
    } 
    function setClass(els, className, fnName) { 
     for (var i = 0; i < els.length; i++) { 
      els[i].classList[fnName](className); 
     } 
    } 
}); 
</script> 

主類,這是手風琴當前顯示,但是當我點擊手風琴,是當我希望面板被執行,我該如何去做。

回答

0

你可以將你的php代碼放在一個單獨的文件中,然後用AJAX調用它。

如果你的名字你的PHP文件「loadPanel.php」,那麼AJAX請求應該是這樣的:

$.ajax({ 
    url: "loadPanel.php" 
}).done(function(response) { 
    $('.panel').html(response); 
}); 

然後你面板DIV中添加任何你想要的PHP代碼到loadPanel.php文件。

ajax的文檔位於jQuery網站上:http://api.jquery.com/jquery.ajax/

+0

尋找這樣的東西,但在我的情況下,我想要一個動態的PHP程序名稱和一些值,我需要傳遞給PHP程序,「$(document )。就緒(函數(){ $( 「#listVehicles」)手風琴({ 可摺疊:真, 活躍:假的, autoHeight:假的, 變化:函數(事件,UI){ ui.newContent .load('edit.php',{stock:__STOCK__}); } }); });「 –

+0

您也可以將數據傳遞給t他與ajax的PHP文件。我的答案中的文檔鏈接有一些很好的例子來說明如何做到這一點。如果文檔不清楚,我可以編輯我的答案以獲得幫助。 –

0

有一個不是衆所周知的解決方案,但功能非常強大,包括使用jQuery更新頁面的一部分(使用最新版本的jQuery)。所以,要做到這一點,你甚至不必創建另一個頁面,所以你只需要使用jQuery load()函數。 此方法是從服務器獲取數據的最簡單方法。它大致相當於$.get(url, data, success),只是它是一種方法而不是全局函數,它具有隱式回調函數。當檢測到成功的響應時(即,當textStatus是「成功」或「未被修改」時),​​將匹配元素的HTML內容設置爲返回的數據。這意味着你可以使用這樣的方法:

$(".panel").load(window.location.href);