Помогите найди ошибку в форме регистрации
Вложений: 2
Доброго времени суток. Хочу создать форму регистрации.
Вложение 2805 Задача такая: при выборе из списка страны без перезагрузки страницы в список должны подгружаться города из БД. Пытаюсь связать PHP + SQL + JQUERY Код JQUERY, который реагирует на выбор страны в списке
$('.country').change(function(){
$.ajax({
type: "POST",
url: "get_city_db.php",
data: "country="+$(this).val(),
success: function(data){
$.each(data, function(i,val) {
alert(val);
$('#cities').append("<option value='"+val+"'>");
});
}
});
});
Собственно PHP файл ("get_city_db.php"), который будет вызван после выбора страны.
<?php
require_once('/classes/db_connect.class.php');
$db = new database();
$db->dbConnect();//Установка соединения с БД
$resault = $db->selectRowWhere('id_country','countries','country_name','=',$_REQUEST['country'],'char');
$row = mysql_fetch_assoc($db->dataSet);
$resault = $db->selectWhere('cities','id_country','=',$row['id_country'],'int');
$rowSet = array();
while($row = mysql_fetch_assoc($db->dataSet)){
$rowSet[] = $row['city_name'];
}
echo $rowSet;
?>
Результат который возвращает get_city_db.php (см. выше) показан на рис. ниже Вложение 2806 Но после возврата массива городов ничего не происходит (отладку jquery в ide netbeans настроить не удалось). В чем может быть ошибка и почему не срабатывает даже alert? |
Показанный массив не должен содержать в себе приведения к типу (string), и сервер должен возвращать не массив, а json.
|
Спасибо за ответ и подсказку. Все получилось.
Файл jquery:
$(document).ready(function () {
$('.country').change(function(){
$.ajax({
type: "POST",
url: "get_city_db.php",
data: "country="+$(this).val(),
success: function(data){
var cities = jQuery.parseJSON(data);
alert('ура '+cities);
$.each(cities, function(i,val) {
alert('ура '+ i);
$('#cities').append("<option value='"+val+"'>");
});
}
});
});
Файл PHP:
<?php
require_once('/classes/db_connect.class.php');
$db = new database();
$db->dbConnect();//Установка соединения с БД
$resault = $db->selectRowWhere('id_country','countries','country_name','=',$_REQUEST['country'],'char');
$row = mysql_fetch_assoc($db->dataSet);
$resault = $db->selectWhere('cities','id_country','=',$row['id_country'],'int');
$rowSet = array();
while($row = mysql_fetch_assoc($db->dataSet)){
$rowSet[] = $row['city_name'];
}
echo json_encode($rowSet);
?>
Еще один небольшой вопрос: из jquery передаю в php данные так: data: "country="+$(this).val() и в php считываю так: $_REQUEST['country'] Есть ли недостатки такой конструкции и нужно ли, так сказать, по правилам хорошего тона переводить в json? |
Цитата:
|
Цитата:
|
Цитата:
А вот то, что в этот массив могут поступать данные из GET, POST, COOKIE, и которые можно переопределить, вот это плохо, да еще при регистрации. |
Цитата:
|
| Часовой пояс GMT +3, время: 09:32. |