2012-08-11 6 views
1

J'apprends Php & Mysql.Dynamic Select Box

J'ai une base de données (pratique) avec 2 tables. L'un est la catégorie et l'autre est la sous-catégorie.

Dans mon formulaire html, il y a une liste de données de boîte de sélection qui proviennent de la table Catégorie. Donc, j'ai besoin, si je sélectionne cette zone de liste, les données d'une autre boîte de sélection apparaîtra à partir de la table de sous-catégorie qui est liée à la table Catégorie. Par exemple:

Catégorie Table

Id  Cat_name 
1  O level 
2  A level. 

table Sous-catégorie:

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 

Merci à l'avance.

Répondre

1

Si vous voulez que cela soit fait de manière transparente et efficace sans rechargement de page, vous devrez regarder dans la fonction Jquery Ajax. La façon dont Ajax fonctionne est quand quelqu'un fait une sélection dans la première case, il enverra ces données à un script php qui peut prendre la réponse de la première boîte, exécuter une requête mysql, puis retourner les nouvelles sous-catégories à la page d'origine sans avoir pour recharger la page.

Exemple: Dans votre 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> 

Dans votre 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; 

S'il vous plaît lire sur Jquery.ajax

+0

Comment puis-je utiliser cette fonction JQuery Ajax? – Shibbir

+0

Merci je vérifie .... – Shibbir

+0

vous pouvez également le faire sans ajax en utilisant des tableaux javascript –

0

Vous aurez besoin d'Ajax pour ce faire, en sélectionnant une valeur dans votre premier menu déroulant, vous envoyez une requête via ajaxnto un autre fichier php qui vous donnera les sous-catégories résultantes, basées sur la première sélection. Ajax insérera alors ces nouvelles données dans votre deuxième liste déroulante. Vous pouvez également regarder dans la fonction de publication de la bibliothèque jquery, ce qui rendra tout ce processus encore plus facile.