दिलचस्प पोस्ट
क्या HTML में <script> टैग स्थिति वेबपृष्ठ के प्रदर्शन को प्रभावित करती है? एसक्यूएल सर्वर 2008 में सीसीवी फ़ाइल के लिए क्वेरी परिणाम निर्यात करें क्या मतलब है? एडीबी सर्वर पुराना है स्थिर नाम से अज्ञात नामस्थान की श्रेष्ठता? फ़ंक्शन पॉइंटर को कैसे स्वरूपित करें? सी # में सापेक्ष समय की गणना करें कमांड लाइन का उपयोग करते हुए NuGet पैकेज कैश को कैसे साफ़ करें? Xml नामस्थान के साथ Linq को Xml का उपयोग करें मैं लोड किए जाने के बाद जावास्क्रिप्ट के साथ Google मानचित्र का आकार कैसे बदलूं? एंड्रॉइड में ग्रिड-दृश्य क्षैतिज रूप से स्क्रॉल करने के तरीके पायथन इमेजिंग लाइब्रेरी – पाठ रेंडरिंग पीएसपी में पोस्ट का शरीर कैसे प्राप्त करें? कॉलम डेटा को पंक्तियों में विभाजित करने के लिए SQL क्वेरी कैसे "एम्बेडेड" SQL 2008 डेटाबेस फ़ाइल बनाने के लिए अगर यह मौजूद नहीं है?

ड्रॉपडाउन चयन के आधार पर डेटाबेस से एक और चुनिंदा ड्रॉपडाउन जनरेट करें

मैं कोडिंग जानने के लिए एक वेबसाइट का निर्माण कर रहा हूं और एक उपकरण बनाने की कोशिश कर रहा हूं जहां एक उपयोगकर्ता एक चुनिंदा / ड्रॉपडाउन पर क्लिक करता है जिसमें डेटाबेस कैट से निकाले गए कुछ श्रेणी नाम शामिल होते हैं और फिर एक अन्य चयन, उप-वर्ग के नामों के साथ दिखाई देता है जो डेटाबेस सबकैट यह येलप के समान लगभग समान है ( जैसे श्रेणियों में नीचे जाएं) जैसे येल्प (श्रेणियों में नीचे जाएं) ।

मैंने भी एक आरेख बनाया है:

यहां छवि विवरण दर्ज करें

मेरे पास पहले से ही एक वर्ग ड्रॉपडाउन है जो बिल्ली डेटाबेस से खींच रहा है:

<p><b>Category:</b><br /> <?php $query="SELECT id,cat FROM cat"; $result = mysql_query ($query); echo"<select name='cselect3' class='e1'><option value='0'>Please Select A Category</option>"; // printing the list box select command while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']." </option>"; } echo"</select>"; ?> 

और मेरे पास एक सबकैट है जो कि सबकैट डाटाबेस से खींच रहा है:

 <p><b>Subcat1:</b><br /> <?php $query="SELECT id,subcat FROM subcat"; $result = mysql_query ($query); echo"<select name='sselect1' class='e1'><option value='0'>Please Select A Category</option>"; // printing the list box select command while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>"; } echo"</select>"; ?> 

उपयोगकर्ता किस श्रेणी पर क्लिक करता है और इसे स्वतः प्रकट होने के आधार पर मैं एक उपश्रेणी ड्रॉपडाउन कैसे बना सकता हूं? किसी भी और सभी मदद के लिए बहुत बहुत धन्यवाद!

वेब के समाधान से एकत्रित समाधान "ड्रॉपडाउन चयन के आधार पर डेटाबेस से एक और चुनिंदा ड्रॉपडाउन जनरेट करें"

मैं बस जावास्क्रिप्ट में PHP के साथ चर डाल दिया और फिर जावास्क्रिप्ट फ़ंक्शंस का उपयोग करेगा .. कोई jquery या AJAX की आवश्यकता नहीं है

हालांकि, आपको उपश्रेणियों के लिए एक विदेशी कुंजी की आवश्यकता है चाहे कोई भी अर्थात् .. अर्थात्- सबटाट तालिका में प्रत्येक रिकार्ड के लिए आपको इसे कैटिड देने की आवश्यकता है ताकि संदर्भित किया जा सके …

 <?php $db = new mysqli('localhost','user','password','dbname');//set your database handler $query = "SELECT id,cat FROM cat"; $result = $db->query($query); while($row = $result->fetch_assoc()){ $categories[] = array("id" => $row['id'], "val" => $row['cat']); } $query = "SELECT id, catid, subcat FROM subcat"; $result = $db->query($query); while($row = $result->fetch_assoc()){ $subcats[$row['catid']][] = array("id" => $row['id'], "val" => $row['subcat']); } $jsonCats = json_encode($categories); $jsonSubCats = json_encode($subcats); ?> <!docytpe html> <html> <head> <script type='text/javascript'> <?php echo "var categories = $jsonCats; \n"; echo "var subcats = $jsonSubCats; \n"; ?> function loadCategories(){ var select = document.getElementById("categoriesSelect"); select.onchange = updateSubCats; for(var i = 0; i < categories.length; i++){ select.options[i] = new Option(categories[i].val,categories[i].id); } } function updateSubCats(){ var catSelect = this; var catid = this.value; var subcatSelect = document.getElementById("subcatsSelect"); subcatSelect.options.length = 0; //delete all options if any present for(var i = 0; i < subcats[catid].length; i++){ subcatSelect.options[i] = new Option(subcats[catid][i].val,subcats[catid][i].id); } } </script> </head> <body onload='loadCategories()'> <select id='categoriesSelect'> </select> <select id='subcatsSelect'> </select> </body> </html> 

चूंकि आपके उप-श्रेणी ड्रॉप डाउन में डेटा श्रेणी में चयनित पर निर्भर है, इसलिए आप शायद एजेक्स का उपयोग करना चाहते हैं। आप अपनी श्रेणी के ड्रॉप डाउन पर एक ईवेंट श्रोता सेट कर सकते हैं और जब आप बदलते हैं, तो आप उपश्रेणी ड्रॉप डाउन के लिए डेटा का अनुरोध कर सकते हैं और इसे पॉप्युलेट कर सकते हैं, इसके बारे में जाने के कई अलग-अलग तरीके हैं, नीचे एक विकल्प है (jquery का उपयोग करके) शुरू कर दिया है।

 // warning sub optimal jquery code $(function(){ // listen to events on the category dropdown $('#cat').change(function(){ // don't do anything if use selects "Select Cat" if($(this).val() !== "Select Cat") { // subcat.php would return the list of option elements // based on the category provided, if you have spaces in // your values you will need to escape the values $.get('subcat.php?cat='+ $(this).val(), function(result){ $('#subcat').html(result); }); } }); }); 

यदि आप AJAX का उपयोग कर रहे हैं, तो आप चाहते हैं कि कोड का दूसरा बिट एक अलग php फ़ाइल हो, जिसे आप AJAX के माध्यम से कॉल करेंगे। AJAX कॉल से कॉलबैक में, बस (छद्म कोड) करते हैं: someContainingDivOrSomething.innerHtml = responseBody;

ध्यान दें कि यह आमतौर पर आपके PHP डिस्प्ले फाइलों में सीधे पूछताछ करने के लिए एक बुरा विचार है (चिंताओं को अलग करना) कई अन्य चीजें हैं जो सुधार की जा सकती हैं। हालांकि, यह आपको शुरू कर दिया जाएगा।

लैंडिंग पृष्ठ पर इस एचटीएमएल संरचना करें

 <p><b>Category:</b><br /> <?php $query="SELECT id,cat FROM cat"; $result = mysql_query ($query); echo"<select name='cselect3' onChange='loadSubCats(this.value)' class='e1'><option value='0'>Please Select A Category</option>"; // printing the list box select command while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt echo "<option value=\"".htmlspecialchars($catinfo['cat'])."\">".$catinfo['cat']." </option>"; } echo"</select>"; ?> <div id='sub_categories'></div> 

श्रेणी ड्रॉपडाउन को निर्दिष्ट एक जेएस फ़ंक्शन बनाते हैं

 function loadSubCats(value) { $.post('load_sub_cats.php',{catid : value},function{data} { $('#sub_categories').html(data); }); } 

अब आपके load_sub_cats.php में

 <p><b>Subcat1:</b><br /> <?php $catid = $_POST['cat_id'] $query="SELECT id,subcat FROM subcat where catid = $catid"; $result = mysql_query ($query); echo"<select name='sselect1' class='e1'><option value='0'>Please Select A Category</option>"; // printing the list box select command while($catinfo=mysql_fetch_array($result)){//Array or records stored in $nt echo "<option value=\"".htmlspecialchars($catinfo['subcat'])."\">".$catinfo['subcat']."</option>"; } echo"</select>"; ?> 

आपको इस कोड कार्य के लिए jquery को शामिल करना होगा।