我只是php,jquery and ajax
中的新手。我想从数据库中的state and city name
获取country name
。我的数据库是这样的
CREATE TABLE IF NOT EXISTS `propertylocator` (
`store_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`store_name` varchar(255) NOT NULL,
`country_name` varchar(255) NOT NULL,
`state_name` varchar(255) NOT NULL,
`city_name` varchar(255) NOT NULL,
`address` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL
PRIMARY KEY (`store_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
INSERT INTO `propertylocator` (`store_id`, `store_name`, `country_name`, `state_name`, `city_name`, `address`, `description`) VALUES
(1, 'My property1', 'India', 'uttar pradesh', 'Ghaziabad', 'Pilkhuwa, Uttar Pradesh 245304, India', 'this is demo test','this is dummy description'),
(2, 'My new Property', 'India', 'Maharashtra', 'Thane', 'Kudavali, Maharashtra 421401, India', 'test propery again', 'another dummy property'),
(3, 'Dummy store', 'United Arab Emirates', 'Sharjah', 'Halwan Suburb', 'Al Ghubaiba - Sharjah - United Arab Emirates', 'this is another dummy store','another text with dummy');
现在我有3个下降
一个用于country name
,第二个用于state name
,另一个用于city name
。
在countryname dropdown
我得到了所有countryname
。但是我希望当我选择country name(lets say india here)
时,我会得到状态的下拉选项uttar pradesh and Maharashtra
,因为他们都有国家名称是印度,当我从国家/地区列表中选择阿拉伯联合酋长国然后我将获得其国家/地区名称为United Arab Emirates in the database
的所有州名称。它将以同样的方式申请cityname
。
对于所有这些我已经jQuery ajax
这样做了
<label>Please Select Country</label></td><td>
<div class="country">
<select id="country" name="country" onchange="selectCountry();">
<option value="Select">Select</option>
foreach($countrylist as $country) {
<option value="$country['country_name]" id="$country['country_name]">echo $country['country_name]</option>
}
</select>
并且在函数selectCountry()
中我的代码就像这样
function selectCountry() {
var state = $('#country').val();
console.log(state);
$.ajax({
type: "GET",
url: "selectstate.php",
data: { sta : state }
}).done(function(html) {
$('#state').html(html);
})
}
在selectstate.php中我有这样的查询
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db(propertylocator) or die(mysql_error());
$sDB = new SelectDb();
$data = $sDB->selectStatesById($_GET['sta']);
foreach($data as $row)
{
echo "<option value=" . $row->state . ">" . $row->name . "</option>";
}
但在这里我没有得到任何结果。它显示404未找到错误。那么有人可以告诉我这里的问题是什么。
如果我的代码中有错误,请善意解决。这样我就能正确理解代码。感谢
更新 我已经检查了网址路径并使其更清晰,因此可以跟踪问题。
答案 0 :(得分:0)
您可以在此处执行的操作是,当国家/地区下拉值更改为jquery ajax以获取所选国家/地区的所有状态并填充下拉列表并将其添加到您的html时,可以拨打电话。然后按照流程调用城市以选择州。
答案 1 :(得分:0)
url =&gt;是找到文件selectstate.php的路径
function selectCountry() {
var state = $('#country').val();
console.log(state);
$.ajax({
type: "GET",
url: url+"selectstate.php",
data: { sta : state },
success: function(html) {
$('#state').html(html);
}
});
}
.success()
只有在您的网络服务器以200 OK HTTP标头响应时才会被调用 - 基本上当一切都很好时。
延迟解决后,将触发附加到done()
的回调
这可能有助于某人