Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как передать переменную через POST ajax'ом в php?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: И прочитать её там
Hawkmoth
Отправлено: 17 Мая, 2012 - 21:27:40
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




В общем, сломал себе голову. Информации много, но так ничего толкового для себя и не вынес. Как ПРОЩЕ и удобнее всего передать строковое значение из js через ajax в php? Использую json. Делаю так:
CODE (javascript):
скопировать код в буфер обмена
  1. function gotoserver () {
  2. var location=document.getElementById('Id1').value;
  3. $.post( './obr.php', location, success, 'json');
  4. function success(msg)   {
  5. alert (msg);
  6. }
  7. }


Судя по алерту, данные до сервера доходят. Но КАК получить присланную строку в php? Собственно, мне нужно только значение этого самого document.getElementById('Id1').value, больше ничего. Может, я нагородил лишнего? Пробовал еще так:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var location='{\"location\":\"'+document.getElementById('Id1').value+'\"}';
  3. $.post( './obr.php', location, success, 'json');
  4. function success(msg)   {
  5. alert (msg);
  6. }
  7. }


А в php пытался выловить нужную переменную через $_POST['location'], но массив $_POST ожидаемо пустой... Понимаю, что туплю. Но подскажите, где?
 
 Top
kappa
Отправлено: 17 Мая, 2012 - 22:58:54
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




В Jquery это выглядит так:

var name = "Передаю данные";
$.post('./obr.php', {name: name}, function(data) {alert(data)});

name -переменная которую передаем
function(data) {alert(data) - это calback функция которая вернет данные с скрипта obr.php
В файле obr.php
$a = $_POST['name'];
echo $a;
 
 Top
Hawkmoth
Отправлено: 17 Мая, 2012 - 23:24:22
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Пытаюсь так:

CODE (javascript):
скопировать код в буфер обмена
  1. <script type='text/javascript'>
  2. function gotoserver() {
  3. var location=document.getElementById('location').value;
  4. $.post( './obr.php', {dat:location}, success, 'json');
  5. function success(msg)   {
  6. alert (msg);
  7. }
  8. }


В обработчике php пишу:


Ничего не выводитсяНедовольство, огорчение

На всякий случай полный листинг файла index.php:
CODE (html):
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <head>
  3. <title>Старница 1</title>
  4. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  5. </head>
  6. <body>
  7. <select id='location'>
  8. <option>Локация 1</option>
  9. <option>Локация 2</option>
  10. <option>Локация 3</option>
  11. </select>
  12. <input type='button' value='Выбрать ' onclick='gotoserver();' />
  13.  
  14. <script type='text/javascript'>
  15. function gotoserver() {
  16. var location=document.getElementById('location').value;
  17. $.post( './obr.php', {dat:location}, success, 'json');
  18. function success(msg)   {
  19. alert (msg);
  20. }
  21. }
  22. </script>

(Отредактировано автором: 17 Мая, 2012 - 23:30:32)

 
 Top
OrmaJever Модератор
Отправлено: 17 Мая, 2012 - 23:42:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Hawkmoth но у location'a нету value и переменая скорее всего не определена, посмотрите ошибки.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Hawkmoth
Отправлено: 17 Мая, 2012 - 23:53:35
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Янв. 2012  


Помог: 6 раз(а)




Нет, это просто я так коряво краткий вариант страницы накидалУлыбка

На самом деле, kappa всё правильно написал, и пример работает, просто я ждал alert с выводом переданных данных, а клиент мне фигу показывал. Судя по всему, из-за формата ожидаемых данных. Вот так всё работает:
CODE (javascript):
скопировать код в буфер обмена
  1. function gotoserver() {
  2. var location=document.getElementById('location').value;
  3. $.post( './obr.php', {dat:location}, success, 'text');
  4. function success(msg)   {
  5. alert (msg);
  6. }
  7. }

(Формат 'json' заменен на 'text')

В файле .php:
 
 Top
kappa
Отправлено: 18 Мая, 2012 - 09:00:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. function gotoserver() {
  2. var location = $('#location').val();
  3. $.post( './obr.php', {dat:location}, success);
  4. function success(msg)   {
  5. alert (msg);
  6. }
  7. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB