我使用国家下拉菜单选择国家和一个国家下拉选择状态。我想要做的是,当用户选择国家选定国家的国家填充状态下降。
问题是,当使用国家名称它不起作用,但如果我使用一个数字,然后它做它应该做的。我在下面列出了所有的代码。
我的PHP代码
<?php
include('connection/config.php');
$country = $_GET['country'];
$qqry = "SELECT state FROM tbl_cc_formate WHERE country LIKE '%$country%'";
$r = mysql_query($qqry);
$resultState = array();
while ($row = mysql_fetch_array($r)) {
$resultState[] = $row[0];
}
$encodState = json_encode($resultState);
echo $encodState;
?>
我的jQuery代码
function loadState(country)
{
$.ajax({
url:'cardstate.php',
type: 'get',
data:{'country':country},
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function(data)
{
$.each(data, function (index, item) {
$('#state').append(
$('<option></option>').val(item).html(item));
});
}
});
}
我的HTML代码
<select id="country" name="country" onchange="loadState(this.value)">
<option selected value="">- ALL -</option>
<option value="Pakistan">Pakistan</option>
</select>
Select State:
<select id="state" name="state">
<option selected value="">- Select Country -</option>
</select>
停止使用'mysyql_ *'它已被弃用切换到'mysqli_ *'或'PDO'并且您的代码可能会被使用SQL注入攻击,因此请在_prepares语句_上阅读。我不认为你需要使用'LIKE'部分作为'%$ country%',只要去掉'%'即可。 – Sand
因为你使用GET方法,你可以将数据附加到你的URL像'cardstate.php?country = england' – heysulo
是亲爱的谢谢你的建议,它的工作时,我从MySQL选择*数据,但是当我使用where子句与$ _POST ['country']不起作用。 –