Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2019, 00:38
Профессор
Отправить личное сообщение для savsoft Посмотреть профиль Найти все сообщения от savsoft
 
Регистрация: 03.01.2019
Сообщений: 163

Redirect после запроса AJAX
Всем привет,

Такая проблема, есть таблица с данными,полем ввода комментария и кнопками для записи комментария в базу данных и раскраски строки таблицы. Таблица формируется php скриптом и в зависимости от кода цвета - меняется фон строки таблицы. В строке таблицы вводится комментарий и нажимается кнопка, например желтая подсветка.
Выполняется ajax запрос, который вызывает php скрипт, где меняются данные в базе и необходимо обновить страницу. Вот тут проблема. Страница не обновляется. Вот код

<script>
		$(document).ready(function(){

			$("#CliTable").on('click','.btnYellow',function(){

				var color      = 1; // Yellow
				
				var currentRow = $(this).closest("tr"); 
				var CliNote    = currentRow.find("textarea").val();
				var CliId      = currentRow.find("td:eq(2)").text();
				
				paint_in(CliId, CliNote, color);
				 
			});

		function paint_in(CliId, CliNote, color){
			$.ajax({
				type: "post",
				url:  "paintin.php",
				data: {
						cli_id: CliId,
						cli_note: CliNote,
						color: color
				},
				success:function(){
					var url = 'clients.php#'+CliId;
					$(location).attr('href',url);
				}	
			});	
		}		
		
	</script>


Как сделать, чтобы по успешному выполнению запроса страница обновлялась? Или как сделать переход из текущего скрипта с передачей данных методом POST в другой php скрипт?
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2019, 00:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,148

savsoft,
строка 27
location.href = url;
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2019, 00:56
Профессор
Отправить личное сообщение для savsoft Посмотреть профиль Найти все сообщения от savsoft
 
Регистрация: 03.01.2019
Сообщений: 163

Сообщение от рони Посмотреть сообщение
savsoft,
строка 27
location.href = url;
Запрос отрабатывает, данные в базу пишутся, строка становится первой на экране, как при открытии страницы с якорем, но фон строки не меняется, пока не обновлю страницу.
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2019, 05:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от savsoft
Как сделать, чтобы по успешному выполнению запроса страница обновлялась?
Выбросить Ajax так как в этом случае нет от него пользы. Отправляйте форму естественным способом. А если хочется асинхронного обмена тогда разукрашиваете строки/ячейки клиентским скриптом после ответа сервера.
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2019, 07:26
Профессор
Отправить личное сообщение для savsoft Посмотреть профиль Найти все сообщения от savsoft
 
Регистрация: 03.01.2019
Сообщений: 163

Сообщение от laimas Посмотреть сообщение
Выбросить Ajax так как в этом случае нет от него пользы. Отправляйте форму естественным способом. А если хочется асинхронного обмена тогда разукрашиваете строки/ячейки клиентским скриптом после ответа сервера.
Таблица может быть достаточно большой и форму делать на всю таблицу не хотелось. AJAX в самом деле не нужен, нужно иметь возможность ввести комментарий в строке, может быть больше 4096 utf-8 символов, как я понимаю GET не подходит. И по нажатию одной из нескольких цветных кнопок записать комментарий в базу и подкрасить фон строки в цвет кнопки. Таки смог сделать это через AJAX. Но не могу подкрасить фон строки. Не хватает знаний. Если делаю через
document.getElementById(TrId).bgColor = '#00FF00';
то не работает. А если через
$(this).closest("tr").css({
				'background-color': '#ff8566'
				});
то не могу вставить в успешное завершение запроса.
<script>
		$(document).ready(function(){

			$("#CliTable").on('click','.btnYellow',function(){

				var color      = 1; // Yellow
				
				var currentRow = $(this).closest("tr"); 
				var CliNote    = currentRow.find("textarea").val();
				var CliId      = currentRow.find("td:eq(2)").text();
				
				paint_in(CliId, CliNote, color);

			        $(this).closest("tr").css({           // Работает
				    'background-color': '#ffff66'
			        });	
				 
			});
			

		function paint_in(CliId, CliNote, color){
			$.ajax({
				type: "post",
				url:  "paintin.php",
				data: {
						cli_id: CliId,
						cli_note: CliNote,
						color: color
				},
				success:function(){
				TrId = CliId;
				document.getElementById(TrId).bgColor = '#ffff66';  // Не работает
				}	
			});	
		}		
		
	</script>

Последний раз редактировалось savsoft, 04.11.2019 в 07:31.
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2019, 07:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

document.getElementById(TrId).style.backgroundСolor = '#00FF00';

Сообщение от savsoft
Таблица может быть достаточно большой и форму делать на всю таблицу не хотелось.
Это смотря как и что в ней отправлять.
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2019, 07:57
Профессор
Отправить личное сообщение для savsoft Посмотреть профиль Найти все сообщения от savsoft
 
Регистрация: 03.01.2019
Сообщений: 163

Сообщение от laimas Посмотреть сообщение
document.getElementById(TrId).style.backgroundСolor = '#00FF00';
Спасибо, работает. Пока вопрос закрыт.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить данные из ajax запроса AlexTrader AJAX и COMET 6 25.12.2016 05:25
Как подключить файл обработки ajax запроса к своему проекту. St. AJAX и COMET 23 15.10.2016 06:53
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
Обновление данных на странице после отсылки POST запроса ArtemKrass Firefox/Mozilla 6 08.10.2013 18:23
Проблема с выводом информации после запроса с помощью ajax Dimario AJAX и COMET 0 23.07.2011 17:08