[英]populate 2nd drop down based on 1st drop down result by using ajax in codeigniter php
[英]Show 2nd Dropdown based on First Drop Down PHP JS
PHP / HTML
<select id="n" name="userListingCateory">
<option disabled="disabled">Category...</option>
<?php while($row = $sth2->fetch(PDO::FETCH_ASSOC))
{echo "<option value=". $row['catID'] . ">" .$row['catName']."</option>";}
unset($sth2);
?>
</select>
<select id="n" name="userListingSubCateory">
<option disabled="disabled">Sub-Category...</option>
<?php while($row = $sth3->fetch(PDO::FETCH_ASSOC))
{echo "<option value=". $row['scatID'] . ">" .$row['scatName']."</option>";}
unset($sth3);
?>
這正確地給了我兩個帶有數據庫值的下拉菜單。 http://i.stack.imgur.com/s9rWB.png http://i.stack.imgur.com/4psBC.png (請管理員顯示)如何獲取此文件(使用JS或PHP)來制作“禁用“子類別”,直到選擇了“類別”,然后根據“類別”中選擇的值,將啟用“子類別”下拉菜單以顯示與最初選擇的類別有關的值?
類別和子類別的兩個數據庫表是:類別:catID(Pk)catName
子類別:scatID(PK)scatName
(管理員請顯示圖片)
任何人?
首先,您要混合應用程序的兩個獨立狀態和兩個關鍵部分。
生成腳本后,會將其發送到瀏覽器,然后會有一個停機時間,直到響應返回。 但是你似乎明白這一點。
另一個關鍵部分是從視圖部分中提取腳本中的數據邏輯。 不需要任何復雜的MVC框架即可,至少將腳本兩部分的數據都放在腳本的頂部即可使操作變得更加簡單。
這是一種大概的方法,可以使其適應您的技術或框架:
<?php
//Read the data
$data = $data2 = array();
$datares = mysql_query('SELECT * FROM categories');
$data2res = mysql_query('SELECT * FROM subcategories');
while($datarow = mysql_fetch_assoc($datares)){
$data[$datarow['id']] = $datarow;
}
while($data2row = mysql_fetch_assoc($data2res)){
$data2[$data2row['parentid']][$data2row['id']] = $data2row;
}
//If this is a postback
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST['userListingCateory']) && in_array($_POST['userListingCateory'], array_keys($data))){
$subcategorydata = $data2[$_POST['userListingCategory']];
}
}
/* put all the rest of the code you think you need here */
?>
<select name="userListingCategory">
<?php foreach($data as $dataitem){ ?>
<option value="<?php echo $dataitem['id']; ?>"<?php if($_POST['userListingCategory'] == $dataitem['id']){ echo ' selected="SELECTED"'; } ?> ><?php echo $dataitem['label']; ?></option>
<?php } ?>
</select>
<?php if(isset($subcategorydata)){ ?>
<select name="userListingSubCateory">
<?php foreach($subcategorydata as $dataitem){ ?>
<option value="<?php echo $dataitem['id']; ?>"<?php if($_POST['userListingSubCateory'] == $dataitem['id']){ echo ' selected="SELECTED"'; } ?> ><?php echo $dataitem['label']; ?></option>
<?php } ?>
</select>
<?php } ?>
我希望這會幫助您入門...
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.