Mysql выберите окно с постом jquery

У меня есть база данных города страны, которая отображается в полях выбора, и все работает нормально. Что я хочу, когда выбрано поле выбора штата для отображения города приводит к div или другой элемент. Когда поле выбора определено для результатов по городу, проблем нет, но если я использую div, выдает сообщение об ошибке

Примечание: неопределенный индекс: страна в C: \ wamp \ www \ list \ post.php в строке 3.

вот мои коды, спасибо.

post.php

include("connect.php");
$country = $_POST['country'];
$query = mysqli_query($connect, "select * from state where country_id='$country'");

while( $list = mysqli_fetch_array( $query ) ) {
echo '<option value=' . $list["id"]. '>' . $list["state_name"] . '</option>';
}

$state = $_POST['state'];
$query = mysqli_query($connect, "select * from city where state_id='$state'");

while( $list = mysqli_fetch_array( $query ) ) {
echo $list["city_name"];
}

JQuery коды

$( "#countries" ).change( function(){
$("#states").empty();
var val = $(this).val();
$.post("post.php", {country:val}, function(a) {
$("#states").append(a);
});
});

$( "#states" ).change( function(){
$("#cities").empty();
var val = $(this).val();
$.post("post.php", {state:val}, function(a) {
$("#cities").append(a);
});
});

index.php

<?php include("connect.php"); ?>
<select id="countries">
<option>select</option>
<?php
$query = mysqli_query($connect, 'select * from country');
while( $list = mysqli_fetch_array( $query ) ) {
echo '<option value=' . $list["id"]. '>' . $list["country_name"] . '</option>';
}
?>
</select>

<select id="states">
<option>select</option>
</select>

<div id="cities"></div>

1

Решение

Сценарий должен проверить, был ли он вызван с country или же state параметра и выполните соответствующий запрос. И код для возврата городов нужно поместить их в <option>так же, как возвращение государств.

include("connect.php");
if (isset($_POST['country'])) {
$country = mysqli_real_escape_string($connect, $_POST['country']);
$query = mysqli_query($connect, "select * from state where country_id='$country'");

while( $list = mysqli_fetch_array( $query ) ) {
echo '<option value=' . $list["id"]. '>' . $list["state_name"] . '</option>';
}
elseif (isset($_POST['state'])) {

$state = mysqli_real_escape_string($connect, $_POST['state']);
$query = mysqli_query($connect, "select * from city where state_id='$state'");

while( $list = mysqli_fetch_array( $query ) ) {
'<option value=' . $list["id"]. '>' . $list["city_name"] . '</option>';
}
}

Вы также должны научиться использовать параметризованные запросы вместо замены переменных, чтобы предотвратить внедрение SQL. До тех пор вы должны хотя бы избежать параметров.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]