2012-08-11 211 views
1

我正在學習Php & Mysql。動態選擇框

我有一個數據庫(練習)2表。一個是類別,另一個是子類別。

在我的html表單中有一個來自Category表的選擇框數據列表。 所以我需要,如果我選擇這個列表框,他們的另一個選擇框的數據將會出現在與分類表相關的子分類表中。例如:

分類表

Id  Cat_name 
1  O level 
2  A level. 

子類別表:

id  Cat_id  Sub_name 
1  1   O-level Math 
2  1   O-level English 
3  2   A-level Math 
4  2   A-level English 

在此先感謝。

回答

1

如果您希望在沒有頁面重新加載的情況下實現無縫高效的操作,您需要查看JQuery Ajax功能。 Ajax的工作方式是當某人在第一個框中進行選擇時,它會將這些數據發送到一個php腳本,該腳本可以從第一個框中獲取答案,運行mysql查詢,然後將新子類別返回到原始頁面,而無需重新加載頁面。

例子: 在你的test.php

//On selection change state, call the ajax 
$("#elementid").change(function() { 
var selection = $(this).children("option:selected"); 

    $.ajax({ 
    url: 'caller.php', 
    dataType: 'json', 
    data: 'selected='+selection, 
    success: function(data) { 
     //Fill the second selection with the returned mysql data 
    } 
    }); 
} 

<select id="elementid"> 
    <option value="volvo">Volvo</option> 
    <option value="saab">Saab</option> 
    <option value="mercedes">Mercedes</option> 
    <option value="audi">Audi</option> 
</select> 

在你caller.php

$selection = $_POST["selected"]; 
//Create an array to hold all the subcategories, say the array is called $sub 
echo json_encode(array(success => $sub)); 
exit; 

Jquery.ajax

+0

我如何使用這個jQuery的Ajax功能讀了? – Shibbir 2012-08-11 08:57:32

+0

謝謝我正在檢查.... – Shibbir 2012-08-11 09:13:34

+0

你也可以使用javascript數組來做到這一點 – 2014-03-28 06:02:54

0

您需要使用Ajax才能完成此任務,在第一個下拉列表中選擇一個值後,您會通過ajaxnto另一個php文件發送請求,該文件會根據第一個選擇給出最終的子類別。然後,Ajax將在您的第二個下拉列表中插入這個新數據。 您還可以查看jquery庫中的post函數,這將使整個過程變得更加簡單。