2012-07-29 28 views
1

我建立了一個從數據庫導航,我要求不同類別的項目。所以基本上我有兩部分導航:如何訪問php生成的導航

第一部分是類別(文化,網頁設計等)的導航。如果我點擊這個,我問我的數據庫與此類別的項目和創建PHP新鏈接:

$query="SELECT * FROM projects WHERE category=\"$category\""; 

$result=mysql_query($query); 

$num=mysql_numrows($result); 

mysql_close(); 

$i=0; 
while ($i < $num) { 
$title=mysql_result($result,$i,"title"); 
$id=mysql_result($result,$i,"id"); 
echo "<div class=\"sublink\" data-id=\"$id\" ><a href=\"#\">$title<br />"; 
$i++; 
} 

但似乎我不能用jQuery調用這些鏈接從我的主網頁,就像我與做類別:

<div class="link" data-subsite="design"><a href="#"> design *</a></div> 
$(document).ready(function(){ 
$('.link').click(function(){ 
var subsite = $(this).data('subsite'); 
     $('#naviLeftContent').load('php/getNavi.php?category='+subsite); 
    }); 
}); 

現在我想做或多或少與我的子導航相同的負載特定文本/標題/信息到正確的divs。但是,從我的子導航生成的新div似乎不在我的源代碼中,所以JavaScript無法識別它們。

回答

1

你似乎在尋找jQuery.on()(RESP jQuery.live(),這是不贊成的1.7版。):

附加的事件處理程序的當前選擇現在和將來匹配這,所有的元素。

編輯:示例:

HTML:

<div id="menu"> 
    <div id="category1"> 
     <a href="#">link 1</a> 
     <a href="#">link 2</a> 
    </div> 
    <div id="category2"></div> 
</div> 

JS:

$(document).ready(function(){ 
    // Attach click handler 
    $(document).on("click", "#menu a", function(){ 
     alert("click!"); 
    }); 

    // Now load menu content, click handler will also work for this 
    $("#category2").load("content.php"); 
}); 



編輯2:解決方案在聊天中發現:

$('.link').click(function(){ 
    var subsite = $(this).data('subsite'); 
    $('#naviLeftContent').load('php/getNavi.php?category='+subsite); 
}); 
$(document).on("click", ".sublink", function(){ 
    var subsite = $(this).data('subsite'); 
    $('#textContent').load('php/subsite.php?page='+subsite); 
}); 



不知道如果我理解正確的話,但你加載通過AJAX導航的內容?這不是太複雜嗎?通常,您讓PHP生成整個導航並使用CSS隱藏不需要的部分。這有很多好處:

$result = mysql_query($query); 
while ($row = mysql_fetch_object($result)) { 
    echo $row->title; 
} 
+0

你能不能給我:少服務器的負載,更好的用戶體驗,...

此外,遍歷MySQL的結果在PHP中,當這樣做是一個很大的可讀性一個例子? – 4ndro1d 2012-07-29 12:05:30

+0

當然,見上...... – Aletheios 2012-07-29 13:11:33

+0

不會是$(「子鏈路」)。點擊(函數(){一樣的? – 4ndro1d 2012-07-29 13:35:18