Ben dinamik AJAX kullanarak DropDown kontrollerini doldurmak için aşağıdaki kodu kullanılır. Bir Açılan denetim her tıklandığında, açıklamasının ardından sonra ileri bir. Php dosyasına veritabanı sonuçları almak için bir AJAX işlevi sorguyu aktarır.
Sorun MySQL bağlantı dizesi ev sahibi olarak aynı uzak sunucunun IP adresini kullanıyor olsa bile, yerel makinede kullanıldığında aynı kod kesinlikle çalışıyor olmasıdır. Ben uzak sunucuya dosya upload Ama, bütün dropdowns aynı sonuçları doldurun. Orada üç dropdowns yani eğer Örneğin: İlçe, seçmen, Şehir ve ben diyelim tıklarsanız, Şehir, tüm diğer dropdowns de daha kendi listesinde şehirler gösterir.
Ben şu AJAX işlevi kullanıyorum sorgu dizesi ferahlatıcı değil sanırım.
[HTML DropDown Code Sample]
<div id="divDistrict" name="divDistrict">
<select class="element select medium" id="inDistrict" name="inDistrict" onclick="MakeRequest('divDistrict', 'inDistrict', 'SELECT * FROM districtmaster');">
<option value="Select" selected="Select">Select</option>
</select>
</div>
[AJAX Function]
function MakeRequest(DivName, DropDownName, SqlQuery)
{
var xmlHttp = getXMLHttp();
var strUrl = "../Lib/filldropdown.php?DivName=" + DivName + "&DropDownControlName=" + DropDownName + "&SqlQuery=" + SqlQuery;
try
{
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4)
{
HandleResponse(xmlHttp.responseText, DivName);
}
}
xmlHttp.open("GET", strUrl, true);
xmlHttp.send(null);
}
catch(err)
{
alert(err);
}
}
[The PHP file code]
<?php
require("dbconnection.php");
require("dbaccess.php");
$dropdownControlName = $_GET['DropDownControlName'];
$query = $_GET['SqlQuery'];
dbconnection::OpenConnection();
$result = dbaccess::GetRows($query);
?>
<select name=" <?php $dropdownControlName ?> ">
<option>Select from the list</option>
<?php while($row=mysql_fetch_array($result))
{ ?>
<option value="<?= $row[0] ?>"><?= $row[1] ?></option>
<?php } ?>
</select>
DbAccess ve göz ardı edin DbConnection referanslar. Bu dosyalar basit mysql_query & içeriyor mysql_connect fonksiyonları. Ayrıca, sorgu dizesinde sorgu geçme riskinin farkındayım. DropDown dolgu düzgün çalışır sonra bunu çözecektir.