Показать сообщение отдельно
  #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.
Ответить с цитированием