2013-03-16 58 views
1

我試圖通過MySQL/PHP和jQuery動態地讀取和顯示菜單及其內容。我已檢索菜單名稱並在頁面上正確顯示。顯示來自MySQL的數據,用於通過jQuery動態更改內容

$select_service_name = "SELECT serv_name FROM services"; 
    $query = $conn->query($select_service_name); 

foreach ($query->fetchAll(PDO::FETCH_COLUMN) as $row) { 
    echo '<li><a href="#">'. $row; '</a></li>'; 
} 

但現在我想以填補服務描述,顯示的第一個閱讀的,但是存儲在div的有

display: none; 

所以我可以使用jQuery UI隱藏其餘/顯示服務描述取決於用戶點擊哪個服務。

有關我如何實現這一目標的任何建議?

謝謝。

我有一個菜單:

ServiceName1 | ServiceName1 Description 
ServiceName2 | 
ServiceName3 | 

等,並使用jQuery .show().hide()我希望能夠顯示根據點擊該服務名稱#每個及其說明。我如何使用從MySQl表中讀取的描述來做到這一點?

+0

使用jQuery函數'.show()'和'.hide() '? – 2013-03-16 22:19:57

+0

是的,但我如何存儲我想要顯示和隱藏的數據,然後顯示它取決於他們選擇哪個菜單項(也從mysql讀取) – speak 2013-03-16 22:23:04

+0

也許你可以在你的問題更具體。恐怕我不太明白這個問題。 – 2013-03-16 22:27:25

回答

1

做這樣的事情: PHP:

foreach ($query->fetchAll(PDO::FETCH_COLUMN) as $row) { 
    echo '<li class="row"><a href="#">' . $row . '</a><span class="description">' . $description . '</span></li>'; 
} 

CSS:

.description{ 
    display: none; 
} 

的jQuery:

$(document).ready(function() { 
    $(".row a").click(function(e) { 
    e.preventDefault(); 
    $(".description").hide(); 
    $(this).parent("li").find(".description").show(); 
    }); 
}); 

http://jsfiddle.net/jdfqS/2/

而且喲你不需要這個jQuery UI ..只是jQuery

+0

非常棒 - 非常感謝。真的很感激它。 – speak 2013-03-16 23:10:10

+0

:)快樂它適合你 – 2013-03-17 07:39:30

0

我建議使用JSON來存儲數據的數據屬性。在PHP中把你需要的數據放到一個對象或數組中。然後使用json_encode把它格式化爲一個JSON字符串:

<div data-example='<?php echo json_encode($data); ?>'></div> 

您可以通過JSON.parsejQuery.parseJSON檢索數據:

$('[data-example]').each(function() { 
    var data = $(this).attr('data-example'); 
    if (data) { 
     data = $.parseJSON(data); 
    } 
    // ... 
});