在我生成的PHP网页中,有3个链接的列表框。当用户更改list_1中的选择时,list_2和list_3的内容会相应更改(例如,它会在包含 continent -> country -> city
的3个列表中更改。)
代码是:
PHP(032A_GetProvincie.php)[已编辑]
$provincie = array();
$query = 'SELECT nume_prov FROM sa_Provincie ';
$query .= 'WHERE provincie_id > 777 ';
$query .= 'ORDER BY nume_prov';
// Get query ---------------------------------------------------
$query_data = mysqli_query($db_conn, $query);
if ($query_data == FALSE)
{
array_push($provincie, 'None found');
goto _adr1;
}
$rows = mysqli_num_rows($query_data);
if ($rows == 0)
{
array_push($provincie, 'None found');
goto _adr1;
}
// Build array -------------------------------------------------
array_push($provincie, 'All_';
while ($row = mysqli_fetch_array($query_data))
array_push($provincie, $row['nume_prov']);
// End
_adr1:
print json_encode($provincie);
mysqli_free_result($query_data);
mysqli_close($db_conn);
的Javascript
$(document).ready(function()
{
$.getJSON("/scripts/032A_GetProvincie.php", function(data)
{
var str_options = "";
for (var i = 0; i < data.length; i++)
{
str_options += "<option value='" + data[i] + "'>" + data[i] + "</option> \r\n";
}
$("#listaProvincie").append(str_options);
$("#listaProvincie").change();
});
$("#listaProvincie").change(function()
{
$.getJSON("/scripts/032B_GetRegiune.php?provincie=" + $(this).val(), function(data)
{
var str_options = "";
for (var i = 0; i < data.length; i++)
{
str_options += "<option value='" + data[i] + "'>" + data[i] + "</option> \r\n";
}
$("#listaRegiune").html("");
$("#listaRegiune").append(str_options);
$("#listaRegiune").change();
});
});
...
listaProvincie是list_1,listaRegiune是list_2等。当PHP查询返回数据时,列表会相应地填充;
然而,如果查询中没有返回任何数据,则“找不到”行不会显示为list_1中的选项,列表仍为BLANK。
我是一个Javascript菜鸟,所以也许我不明白一些基本的东西,但我的代码有什么问题?请不要试图给我一个使用Ajax的解决方案,我对此几乎一无所知。
注意:在我在此处显示的代码中,我的PHP查询的WHERE子句故意包含条件provincie_id > 777
,我知道它不返回任何行,但list_1仍为空。我在想,我在数组中推送的任何值都应该出现在列表中,不应该吗?
[编辑1]不,这不对。当我将值直接推送到$ provincie(PHP数组)时,该脚本不再起作用。为什么???如果032A_中出现问题,我如何调用调用032A_GetProvincie.php的JavaScript脚本的主页PHP页面??
[编辑2]我不确切知道为什么,但是经过一些更加烦躁之后,array_push()“开始”按照应该工作的方式工作,我的问题得到了解决。我也是一个PHP ROOKIE。好吧,我在9个月前开始用PHP编程,来自VisualStudio。在那里,事情变得更加简单明了。