У меня было так:
$(function(){ $("#com_wall_submit").click(function(){ var comment=$("#comment").val(); var id_message=$("#id_message").val(); $.ajax({ type: "POST", url: "handlers/com_wall", data: {"comment": comment, "id_message": id_message}... Дальше в php я просто получал эти переменные следующим образом: $comment=$_POST['comment']; $id_message=$_POST['id_message']; и работал с ними. |
Как я уже говорил, $.ajax() принимает в качестве data несколько форматов. Так что без разницы
var data = {comment: $('#comment').val(), id_message: $('id_message').val()}; или var data = 'comment=comment_content&id_message=message_id' Оба варианта приемлемы. И сервера эти различия не касаются. |
Сделал как вы говорите, то есть:
js: $(function(){ $(".button_comment").click(function(){ var data = $(this.form).serialize(); $.ajax({ type: "POST", url: "handlers/com_wall", data: data,... html: <form class='form-container' action='handlers/com_wall' method='post'> <textarea rows='1' placeholder='Оставить комментарий..' id='com'></textarea> <input type='hidden' value='$id_message' id='id_mes'> <input type='hidden' value='$id_mine' id='sender'> <div class='wrap_button_comment'> <div class='error_com_box' id='error_com_box'></div> <input type='submit' value='Комментировать' class='button_comment' id='com_wall_submit'> <div class='clear'></div> </div> </form> php: <?php if (isset($_POST['com'])) {$com=$_POST['com'];if ($com=='') {unset($com);}} if (isset($_POST['id_mes'])) {$id_mes=$_POST['id_mes'];if ($id_mes=='') {unset($id_mes);}} if (isset($_POST['sender'])) {$sender=$_POST['sender'];if ($sender=='') {unset($sender);}} if (empty($id_mes) OR empty($sender)){ echo 0; exit(); } .... и мне выдает ошибку "0", то есть переменная $sender или $id_mes пустые... |
Vladislav, ну вы опять закрыли глаза. Посмотрите на первый мой пример. Там в html прописаны name для элементов формы.
unset($var) не нужно делать, ибо empty($var = '') выдаст true |
как не прискорбно мне про это говорить, но я убрал unset, добавил name и все равно нечего не получается, хоть на этот раз ошибку уже не выводит.
Ладно, поробую еще в нете покапаться, может быть пример найду какой-то... Вам спасибо большое, даже огромное!! Я еще вернусь! |
Учитесь локализовывать ошибки. Для начала проверьте данные, которые отправляет браузер (вкладка Сеть(Network)). Если все ок, значит проблема на сервере. var_dump обычно помогает во всем разобраться.
|
Вот как это выглядит в Chrome Developer Tools:
![]() |
Часовой пояс GMT +3, время: 23:58. |