Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2016, 11:42   #1
Sanscrit
Пользователь
 
Регистрация: 23.03.2015
Сообщений: 24
По умолчанию JavaScript.Вывод результата ajax запроса

Всех приветствую!
Смысл задания таков: пользователь выбирает в select какой-то пункт и по этому пункту производится выборка из БД и результат подставляется в другой select.
Суть проблемы: в результате во 2-ой select выводятся не строки, а массивы букв, т.е. у каждой буквы своя строка.
JS:
Код:
<script type="text/javascript">
		$("#cities").change(function(){
			var city_id = $(this).val();
			$.ajax({
				url: "selectStreets.php",
				type: "POST",
				data: {id: city_id},
				success: function(data){
					for (var i = 0; i < data.length; i++) {
						$('#streets').append('<option value="' + i + '">' + data[i] + '</option>');
					}
				},
				error: function(){
					alert("Ошибка при подключении к файлу");
				}
			});
		});
	</script>
PHP:
Код:
<?php
	if (isset($_POST['id']))
	{
		$city = $_POST['id'];
		require_once "connect.php";

		$mysqli = connect();
		$result = $mysqli->query("SELECT `id`, `street_name` FROM `streets` WHERE `city_id` = '$city'");
		$mysqli->close();
		$result_arr = array();
		while ($rows = $result->fetch_assoc())
		{
			$result_arr[] = $rows['street_name'];
		}
		
		for ($i = 0; $i < count($result_arr); $i++)
		{
			echo $result_arr[$i];
		}
	}
	else
	{
		exit();
	}
?>
В чем проблема не пойму, по print_r массив выводит как обычный одномерный.
Скрин результата:
http://s50.radikal.ru/i129/1603/93/b53b60c5e48e.png

Последний раз редактировалось Sanscrit; 23.03.2016 в 12:06.
Sanscrit вне форума Ответить с цитированием
Старый 23.03.2016, 13:31   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Потому что результат приходит в виде строки.
Распарси ее и переформируй в массив.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 23.03.2016, 13:54   #3
Sanscrit
Пользователь
 
Регистрация: 23.03.2015
Сообщений: 24
По умолчанию

Хотелось бы немного побольше информации
Sanscrit вне форума Ответить с цитированием
Старый 23.03.2016, 15:54   #4
Sanscrit
Пользователь
 
Регистрация: 23.03.2015
Сообщений: 24
По умолчанию

В обще я нашел решение: в ajax запросе выставить dataType: "json",
а в массив вернуть так:
Код:
$result_arr = array();
		while ($rows = $result->fetch_assoc())
		{
			$result_arr[] = $rows['street_name'];
		}
		
		echo json_encode($result_arr);
Sanscrit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод результата запроса в файл vladtr Microsoft Office Access 3 30.03.2011 15:13
Вывод результата запроса в DBedit torrtik БД в Delphi 5 13.03.2011 11:30
отображение результата запроса в combobox mile4ka БД в Delphi 3 20.12.2010 18:17
Вывод результата после запроса Hamsi БД в Delphi 1 07.12.2010 17:00
Присвоение результата запроса, переменной Droid БД в Delphi 3 13.04.2010 16:34