У меня было так:
$(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, время: 09:26. |