@olifem

Как записать результат запроса к бд в разные переменные и вернуть в разные блоки с помощью ajax?

Делаю локализацию сайта. Есть база данных, в ней таблицы localization_n (Где n любой язык, в данном случае ru). При клике на контейнер локализации, срабатывает скрипт
$('#rus').on('click',function(){
	$.ajax({
		type: "POST",
		url: "localization_rus.php",
		success: function(html){
			$("#content").html(html);
		}
	});
 return false;
});


Отправляет запрос в обработчик

$query = 'SELECT * FROM localization_ru';
	if($result = $mysqli -> query( $query)){
		while( $row = $result -> fetch_assoc( )){
			$roll = array(
				name => $row['name'],
				str => $row['string']
			);
			$list[]=$roll;
		}
		$result -> close();
	}
		
	for($i=0;$i<count($list);$i++){
		$row = $list[$i];
		echo $row['str']."</br>";
	}

Который в свою очередь направляет всего один запрос в бд.

Проблема вот в чем. Мне нужно перезаписать текст на всем сайте, в разных блоках. Как записать отклик БД в разные переменные и на каком этапе это следует сделать. В обработчике или на странице клиента? Как отправить AJAX запрос, один или пихнуть его в цикл и передавать с разными параметрами data? Буду признателен за пример)
  • Вопрос задан
  • 311 просмотров
Пригласить эксперта
Ответы на вопрос 2
@DenisDangerous
Я так понимаю результат ИЗ бд у тебя в таком виде:
name=название
amount=количество и т.п. т.е. ключ - значение
например:
User name
На сервере формируешь json объект.
и далее
var obj =  JSON.parse(ответ сервера);
$.each(obj,function(key,val){
$('.lang_ru_'+k).html(val);
})

как то так. Тебе ж заменить текст надо в отдельных блоках или что?

и имхо лучше так:
$arr[$row['name']]=$row['string'];
или 
$obj->{$row['name']}=$row['string'];
а потом
exit(json_encode($obj));
Ответ написан
Комментировать
@Brother79Mail
Лучше в запросе использовать параметр dataType="json" тогда и парсить не надо в success вернется json, соответственно в пхп гадо вернуть массив через json_encode, ну и потом в js уже его обрабанывать как массив или объект
Почти как написал выше Денис, только там парсинг json лишний если правильно вызвать аякс
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы