Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2012, 20:55
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Метод JQuery $.post работает через раз
Всем привет. Написал небольшой скрипт, отправляющий выбранный вариант на сервер и сохраняющий его в базу данных. Для этой цели использую метод $.post библиотеки JQuery. На сервере проходит проверка, если пользователь с данным идентификатором уже отвечал, выдается сообщение: "Вы уже проголосовали!", а если не отвечал(то есть таблица в базе пустая), выдается: "Результаты успешно сохранены!".
Однако срабатывает через раз. То есть даже если таблица пустая все равно выводится сообщение: "Вы уже проголосовали!", но в базу сохраняется только id пользователя, а в строке вариант ответа сохраняется ноль, хотя возможные значения, в зависимости от выбранного варианта ответа имеют id 1, 2 или 3. В очень редких случаях все сохраняется как положено, хотя я ничего не меняю в коде.
Я пишу так:
$.post('save_data.php');
Но все меняется после того как я укажу второй параметр в методе $.post. Т.е. пишу так:
$.post('save_data.php', {variant});
. После этого все работает хорошо, всегда все сохраняется и не возникает никаких проблем. Почему так происходит, кто сможет объяснить? Были мысли, что не всегда передается выбранный вариант ответа, но я проверил это прописав в скрипте PHP вывод переданного значения. Выводится сообщение: "Вы уже проголосовали! Выбранный вариант: 3". Т.е. вариант то все таки передается на сервер, вот только почему в БД он не сохраняется(сохраняется как ноль). Хотелось бы понять в чем баг. Почему после того как я указваю в методе второй параметр(данные) все работает нормально, а если не указываю, то не работает(иногда только).
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2012, 16:17
Аватар для keen
Профессор
Отправить личное сообщение для keen Посмотреть профиль Найти все сообщения от keen
 
Регистрация: 28.03.2012
Сообщений: 376

Цитата:
$.post('save_data.php', {variant});
а что это за запись такая {variant} ?

синтаксис записи объекта выглядит как { a: 1, b: 2 } итд итп
в фигурные скобки название переменной брать не надо, даже если variant - объект)
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2012, 17:47
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Теперь я написал так:
$.post('save_data.php', {drink: 2});

Вот код формы:
<form action="save_data.php" method="post">
<p>
<b>Что вы предпочитаете выпить:</b><Br>
   <input type="radio" name="drink" value="1"> пиво<Br>
   <input type="radio" name="drink" value="2"> чай<Br>
   <input type="radio" name="drink" value="3"> кофе<Br>
   <input type="image" src="images/imgbutton.png">
</p>
  </form>

Выбираю третий вариант, т.е. кофе(value="3"), отправляю данные на сервер, приходит сообщение: "Вы уже проголосовали! Вариант 3". Но в базе данных в поле вариант сохраняется значение 2, которое я указал во втором параметре метода $.post. Как такое вообще возможно? В переменную сохраняется выбранное значение "3", а в базу сохраняется "2". Я же эту же переменную, содержащую значение "3" передаю в SQL-запросе в БД. Как же тогда в базу сохраняется "2". С помощью оператора "echo" языка PHP вывожу значение этой переменной в браузер. И она содержит 3!))) А в базе сохраняет 2. Я логики вообще не понимаю. Кто-нибудь объясните мне как такое вообще возможно.
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2012, 17:52
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Кстати когда я пишу
$.post('save_data.php', {drink});
все работает отлично.) Больше не пишет, что вы уже проголосовали. Пишет как положено: "Результаты успешно сохранены!". И в БД сохраняется значение, которое я выбрал в форме.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает колесо в jquery knark jQuery 3 24.06.2012 12:23
Не работает аякс в jQuery Form Ticksy jQuery 4 19.07.2011 12:55
Не работает анимация jquery hugi jQuery 1 30.08.2010 20:25
Регулярка работает через раз. Andrej_2 Общие вопросы Javascript 17 17.05.2009 15:15
подгрузка файлов через jQuery imdogma jQuery 4 05.05.2009 21:46