2009-12-08 137 views
0

我有一個由MySQL生成的列表。當我單擊列表中的一個項目時,它會在同一頁面中顯示與該項目相關的新列表。隱藏/顯示在PHP中

編輯:

這是我如何得到列表的代碼。

<?php 
    include("./conn/connect.php"); 
    $query = "SELECT * FROM entreprise ORDER BY id"; 
    $result = mysql_query($query) or die("result failed: ".mysql_error()); 
    while($row = mysql_fetch_assoc($result)){ 
     echo $row['name'].'<br>'; 
    } 
?> 

我不能完成後半部分。

我該如何做到這一點?

+0

您需要張貼一些代碼。 當您單擊該項目時,您將不得不執行另一個查詢以生成結果的子集。 – Tom 2009-12-08 09:16:39

+0

代碼會有幫助。並且在描述中使用現在時,如果功能已經存在,然後你問如何實現這一點..這有點令人困惑.. – miku 2009-12-08 09:19:46

+0

@Tom和MYYN,感謝您的建議,我已經發布了獲取列表的代碼,但我不知道如何做後半部分。感謝您的任何建議。 – 2009-12-08 09:23:45

回答

2

你們是不是要運行在PHP中查詢並填充在下拉菜單列表中的HTML頁面?如果是這樣,您應該使用JavaScript來顯示和隱藏它們,基於前一個列表中單擊的內容。您可以使用事件來找出被點擊的內容,提交表單或其他內容,並獲取相應的列表。

我纔拿到你的問題吧?還是我離開?

編輯:

好的。使用JavaScript隱藏顯示元素不需要任何教程。

在窗體中有列表。 onchange事件會告訴你什麼時候選擇的項目已經改變。當它發生時,將表單發佈到同一頁面。在PHP中,您可以獲取選定的項目。然後運行您的查詢並獲取基於此輸入的第二個列表。使用Echo或其他來在HTML中編寫新列表。

<?php 
// Here, $_POST['options'] will give you the selected item from first list. 
// Run your query to get the next list and use echo() to write 
// out the HTML or something 
?> 

<form name="myform" method="POST" action="test.php"> 
    <select name="options" onchange="myform.submit();"> 
     <option value="item1">item1</option> 
     <option value="item2">item2</option> 
     <option value="item3">item3</option> 
    </select> 
</form> 

<?php 
// Use a 'for each' kind of loop here and run through the results 
// of your second list. Construct the secondary select tag using 
// the data here. 
?> 

您可以在運行查詢後使用PHP構造第一個列表。我沒有這樣做,因爲代碼會變得漫長而複雜。

基本上運行第一個查詢並構建第一個列表,添加事件,如圖所示。

當用戶在列表中選擇的東西,你把它提交給同一個頁面,並基於該值,則運行第二個查詢,構建次列表。

+0

@senthil,是的,我認爲你很瞭解情況。你有什麼建議或教程?提前致謝。 – 2009-12-08 09:27:55

2

如果您在使用語義代碼使您的清單,你會發現很容易風格CSS。 (IE使用UL,LI等)。 ?

<?php 
include("./conn/connect.php"); 
$query = "SELECT * FROM entreprise ORDER BY id"; 
$result = mysql_query($query) or die("result failed: ".mysql_error()); 
echo "<ul id=\"hideme\">"; 
while($row = mysql_fetch_assoc($result)){ 
    echo "<li>" . $row['name'] . "</li>"; 
} 
echo "</ul>"; 

>

和你jQuery是:

$(document).ready(function() { 
    $('#toggle').click(function() { 
    $('#hideme').toggle(); 
    }); 
}); 

只是做一個鏈接,按鈕,無論是這樣的:

<input type="submit" name="toggle" value="Toggle list show" id="toggle" /> 
+0

@hfidgen,謝謝,但我沒有使用像這樣的切換,我想單擊列表中的一個項目,然後根據所選項目在右側生成一個新列表。 – 2009-12-08 10:20:39

0

你可以使用一個jQuery JavaScript的樹。轉到here for a demo

這是你以後是什麼樣的事情?

+0

@Jamie,謝謝,但我不認爲我在找jtree。 – 2009-12-08 09:54:11