Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Достать значения input'ov (https://javascript.ru/forum/jquery/35527-dostat-znacheniya-input%27ov.html)

Vladislav 13.02.2013 22:20

У меня было так:

$(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'];


и работал с ними.

danik.js 13.02.2013 22:42

Как я уже говорил, $.ajax() принимает в качестве data несколько форматов. Так что без разницы

var data = {comment: $('#comment').val(), id_message: $('id_message').val()};

или
var data = 'comment=comment_content&id_message=message_id'
Оба варианта приемлемы. И сервера эти различия не касаются.

Vladislav 13.02.2013 23:15

Сделал как вы говорите, то есть:
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 пустые...

danik.js 13.02.2013 23:33

Vladislav, ну вы опять закрыли глаза. Посмотрите на первый мой пример. Там в html прописаны name для элементов формы.

unset($var) не нужно делать, ибо empty($var = '') выдаст true

Vladislav 14.02.2013 00:22

как не прискорбно мне про это говорить, но я убрал unset, добавил name и все равно нечего не получается, хоть на этот раз ошибку уже не выводит.

Ладно, поробую еще в нете покапаться, может быть пример найду какой-то...

Вам спасибо большое, даже огромное!! Я еще вернусь!

danik.js 14.02.2013 08:10

Учитесь локализовывать ошибки. Для начала проверьте данные, которые отправляет браузер (вкладка Сеть(Network)). Если все ок, значит проблема на сервере. var_dump обычно помогает во всем разобраться.

danik.js 14.02.2013 08:16

Вот как это выглядит в Chrome Developer Tools:


Часовой пояс GMT +3, время: 23:58.