У меня есть каскадирование страны/штата/города. Данные заполняются с использованием PHP/Mysql. Данные заполняются для вариантов состояния/города, соответствующих стране. Данные также заполняются в соответствии с данными, введенными пользователем для его записи. Есть две проблемы.Заполнение Jquery Based Drop Down с использованием PHP и MySQL
Данные загружаются дублируется, когда пользователь вводит данные подаются в раскрывающемся меню (например, если он вошел в США, еще один США показывает, потому что из другого запроса, чтобы заполнить значения) Здесь мы можем использовать «выбрано», но как это сделать, когда данные поступают из базы данных.
Вторая проблема заключается в том, что каскад не отображает соответствующие записи - если пользователь вошел в США, тогда государства США и Сити не отображаются в каскаде, хотя независимо от введенного пользователя отображается.
Это мнение
Country:
<select class="addpropertyinput" name="property_country" id="country" >
<option value="<?php echo $data['property_country']; ?>">
<?php
$country_id = $data['property_country'];
$select = $con->prepare("SELECT country_name from tbl_country where country_id='$country_id'");
$select->setFetchMode(PDO::FETCH_ASSOC);
$select->execute();
$data2 = $select->fetchAll();
foreach ($data2 as $row1) {
echo $row1['country_name'];
}
?>
</option>
<?php foreach ($data1 as $row) { ?>
<option value = "<?php echo $row['country_id']?>"><?php echo $row['country_name']?></option>
<?php } ?>
</select>
</div>
<div>
State:
<select class="addpropertyinput" name="property_state" id="state" >
<option value="<?php echo $data['property_state']; ?>"><?php echo $data['property_state']; ?></option>
</select>
</div>
<div>
City :
<select class="addpropertyinput" name="property_city" id="city">
<option value=""><?php echo $data['property_city']; ?></option>
</select>
</div>
Это Jquery
// Country State City Dropdown
$('#country').on('change', function() {
var country_id = $('#country').val();
if (country_id == "")
{
$('#state').html('<option value="">State</option>');
$("#city").html(' <option value="">City</option>');
}
else {
$.ajax({
type: 'POST',
url: '../classes/countrystatecity.php',
data: "country_id="+country_id,
success: function(msg) {
$("#state").html(msg);
$("#city").html(' <option value="">City</option>');
}
});
}
});
$('#state').on('change', function() {
var state_id = $('#state').val();
if (state_id == "")
{
$("#city").html(' <option value="">City</option>');
}
else {
$.ajax({
type: 'POST',
url: '../classes/countrystatecity.php',
data: "state_id="+state_id,
success: function(msg) {
$("#city").html(msg);
}
});
}
});
Это модель:
$select = $con->prepare('SELECT country_id, country_name from tbl_country');
$select->setFetchMode(PDO::FETCH_ASSOC);
$select->execute();
$data1 = $select->fetchAll();
// Select State
if (!empty($_POST['country_id'])){
$country = $_POST['country_id'];
$select = $con->prepare("SELECT state_id, state_name from tbl_state where country_id='$country'");
$select->setFetchMode(PDO::FETCH_ASSOC);
$select->execute();
$data1 = $select->fetchAll();
?>
<option value="">State</option>
<?php
foreach ($data1 as $row){ ?>
<option value = "<?php echo $row["state_id"];?>"><?php echo $row["state_name"];?></option>
<?php
}
}
// Select City
if (!empty($_POST['state_id'])){
$state = $_POST['state_id'];
$select = $con->prepare("SELECT city_id, city_name from tbl_city where state_id='$state'");
$select->setFetchMode(PDO::FETCH_ASSOC);
$select->execute();
$data1 = $select->fetchAll();
?>
<option value="">City</option> <?php
foreach ($data1 as $row){ ?>
<option value = "<?php echo $row["city_id"];?>"><?php echo $row["city_name"];?></option>
<?php
}
}
Задача 1 Решение работает , но решение проблемы 2 - нет. Вы видите, что данные о проблемах 2 поступают из двух мест: один из jquery (в зависимости от страны), который заполняет все состояния, и один из ajax - который заполняет сохраненные пользователем данные. После того, как пользователь заполняет данные, необходимо показать другие параметры. – DragonFire
получил правильный запрос: \t $ countryid = $ data ['property_country']; \t \t \t \t $ select1 = $ con> подготовить ("SELECT state_id, state_name из tbl_state где country_id = '$ countryid;'"); \t \t \t \t $ select1-> setFetchMode (PDO :: FETCH_ASSOC); \t \t \t \t $ select1-> execute(); \t \t \t \t $ data2 = $ select1-> fetchAll(); \t \t \t \t Еогеасп ($ data2, как $ row3) { \t \t \t \t \t $ выбран = ''; \t \t \t \t \t если ($ row3 [ 'state_id'] == $ данных [ 'property_state']) { \t \t \t \t \t $ выбран = 'выбран'; \t \t \t \t \t}?> \t \t \t \t \t <параметр значение = " PHP Эхо $ row3 [ 'state_id']?>" PHP Эхо $ выбранный? >> PHP Эхо $ row3 [ 'state_name']?> \t \t \t \t \t – DragonFire