Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625

jquery.ajax поле - data:

14.11.2012, 17:29. Показов 3107. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет.
Код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function send() {
$.ajax({
type: "POST",
url: "result.php",
data: // сюда надо вставить массив с двумя переменными login и data
success: function(неизвествно что вставлять) {
$("#yes").empty();
$("#yes").append(неизвестно что вставлять);
 
$("#yes2").empty();
$("#yes2").append(неизвестно что вставлять);
    }
});
}
Имеется форма, с двумя полями login, text и кропкой, при нажатии на которую, вызывается вышеуказанная функция. Помогите правильно вставить массив в поле data c переменными login и text.

#yes и #yes2 это контейнеры на странице:
HTML5
1
2
<div id='yes'></div>
<div id='yes2'></div>
В одной из моих тем, мне посоветовали передавать на сервер массивы с данными и в массиве же и возвращать данные от сервера.
Файл обработчик result.php:
PHP
1
2
$dt = array($login, $text);
echo $dt;
Я не знаю как обычно реализовывают эти задачи. Вожусь сегодня целый день и результат нулевой. Поэтому прошу помощи в следующих задачах:
1. В поле data правильно вставить массивы с переменными login и text.
2. В функции append(), прописать правильные инструкции, чтобы в yes и yes2 вставлялись возвращаемые сервером значения.
3. Подправить файл result.php если он неправильно написан.

Изначальная цель такова. С помощью ajax, передаем из формы массив с двумя значениями login и text. Сервер обрабатывает и возвращает массив с двумя переменными. Далее функции append() вставляют полученные результаты в соответствующие контейнеры yes и yes2. Контейнер yes для значения login, контейнер yes2 - для text.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.11.2012, 17:29
Ответы с готовыми решениями:

Ajax jquery table data
Доброго дня, вопрос у меня такой, я имею таблицу получаемую из результатов запроса ajax таблица появляется, и даже данные добавляются в...

JQuery, Ajax и LIVE!? Возможно ли повесить ajax запрос на live?
все делаю правильно, но у меня даже onSubmit alert(&quot;ok!&quot;); выводить не хочет? код примерно такой: ...

Ajax (serialiaze data)
Добрый день, сразу простите меня за столь банальные возможно вопросы... Помогите примерчиком разобратся с: ...

16
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
14.11.2012, 17:45
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function send() {
$.ajax({
type: "POST",
dataType: 'json',
url: "result.php",
data: $('#formId').serialize(),
success: function(data) {
$("#yes").empty();
$("#yes").append(data.login);
 
$("#yes2").empty();
$("#yes2").append(data.pass);
    }
});
}
В пхп не понятно что вы хотите выводить.
Если Вам нужно вернуть логин и пароль
PHP
1
2
3
4
5
$dt = array(
   'login' => $_POST['login'],
   'pass' => $_POST['pass'],
);
echo json_encode($dt);
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
14.11.2012, 19:18  [ТС]
Спасибо огромное!

Добавлено через 45 минут
И еще один момент. Как изменить код так, чтобы передавать обычные переменные, без массивов? Затем обрабатывать их на сервере и назначать соответствующим контейнерам yes и yes2.
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
14.11.2012, 21:32
Если данные, которые пришли с сервера, Вам нужно раскидывать по разным уголкам сайта, то тут без массивов не обойтись. Но.. в принципе, массив тут необходим лишь для того чтобы отдать данные клиенту в формате json
Кстати в js там тоже нет массивов как таковых))
JavaScript
1
data: $('#formId').serialize(),
Вот эта штука собирает все данные из формы и переводит их в формат
"name=value&name1=value1"
то есть можете просто получить данные в переменные и подставить их примерно так.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function send() {
 var login = $('input[name="login"]').val();
 var pass = $('input[name="pass"]').val();
$.ajax({
type: "POST",
dataType: 'json',
url: "result.php",
data: 'login='+login+'&pass='+pass, // какие угодно данные можете передавать
success: function(data) {
$("#yes").empty();
$("#yes").append(data.login);
 
$("#yes2").empty();
$("#yes2").append(data.pass);
    }
});
}
ну а в пхп получаете
PHP
1
2
$login  = $_POST['login'];
$pass  = $_POST['pass'];
а чтобы отдать клиенту данные обработанные срвером в формате json

PHP
1
2
3
4
echo json_encode(array(
   //тут собираем любой массив который понравиться 
   
));
Ну в принципе стандартная схема взаимодействия
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
14.11.2012, 21:41  [ТС]
Отлично. Думаю, теперь у меня все получится. Я в принципе точно также писал. Правда в php, у меня не хватало этого:
PHP
1
2
echo json_encode(array( 
));
Чтож. Результаты непременно выпишу здесь.
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
14.11.2012, 21:43
Удачи)
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
14.11.2012, 21:56  [ТС]
Вам нужно раскидывать по разным уголкам сайта, то тут без массивов не обойтись.
Пришел к этому же выводу.. Ну чтож. Главное теперь понял как это работает. Благодарю вас за помощь. День прошел не зря.
0
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
17.11.2012, 20:41  [ТС]
А можно ли таким же методом, отправлять файлы? Добавив contentType: 'multipart/form-data'.

Добавлено через 3 часа 41 минуту
Пробовал добавлять строки:
JavaScript
1
2
3
contentType: 'multipart/form-data',
processData: 'false',
cash: 'false',
Почему то запрос идет, но файл не отправляется..
Сервер возвращает NULL.
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
19.11.2012, 11:33
Врятли так получится.
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
19.11.2012, 16:23  [ТС]
Еще один неприятный момент. Когда многократно ввожу в форму одинаковые данные, бывает такое что запрос возвращает ошибку parsererror. Кеширование я отключил. Не помогло. В чем может быть проблема?
JavaScript
1
cache: false,
Добавлено через 25 минут
Пробовал добавлять в конец url запроса случайное число. Тоже не помогло.
JavaScript
1
2
var rand = Math.floor(Math.random( ) * (9999999+1));
data: $('#form1').serialize()+"&r="+rand,
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
19.11.2012, 17:11
У меня не выводится alert, находящийся в success. Если убираю dataType: "json", То выводится. Почему так?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$.ajax({
        url: "get.php",
        type: "POST",
        data:
        {
            "action": "send_message",
            "message_text": $("message").val()
        },
        dataType: "json",
        success: function(html)
        {
            alert("qwe");
            $('#chat').html(html);
        }
    });
0
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
19.11.2012, 17:18
Потому что в PHP не правильный вывод делаете скорее всего
0
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
19.11.2012, 17:27  [ТС]
Если убираю dataType: "json", То выводится. Почему так?
В php надо добавить это:
PHP
1
echo json_encode($переменная);
Чтобы скрипт и php, общались между собой на языке json.
В js скрипте также выставите:
JavaScript
1
dataType: 'json',
1
 Аватар для suharik
261 / 247 / 57
Регистрация: 03.09.2010
Сообщений: 805
19.11.2012, 17:33
stashappy,
JavaScript
1
2
3
4
5
var rand = Math.floor(Math.random( ) * (9999999+1));
var data = $('#form1').serializeArray();
data['r'] = rand
//И в аяксе
data: data,
А что если что-то подобное сделать?
1
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
19.11.2012, 20:04  [ТС]
Не помогло. При однократном запросе, ошибок не возникает. Но если нажать на кнопку еще раз, то сервер возвращает parsererror. Ради интереса, ввел во все поля своей формы, текст - qwerty. Нажал на кнопку, первый запрос пошел без ошибок. Еще раз нажал на кнопку, во второй раз, вышла ошибка. Хотя данные в форме, эти же.
0
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
19.11.2012, 20:18  [ТС]
Изображение ошибки.
Миниатюры
jquery.ajax поле - data:  
0
 Аватар для stashappy
42 / 42 / 13
Регистрация: 21.08.2011
Сообщений: 625
19.11.2012, 21:02  [ТС]
Хм.. В общем то, проблема решена. Причина крылась в php обработчике.

Пример записи(php):
PHP
1
2
3
4
5
6
7
8
$result;
$login = trim($_POST['login']);
$login = iconv("utf-8", "windows-1251", $login);
if(empty($login)) {
$result = array('result'=>'login_empty');
echo json_encode($result); // возвращаем ошибку
return;   // вот этого не хватало..    
}
Надо было просто вставить return;, рядом с каждой возвращаемой переменной.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2012, 21:02
Помогаю со студенческими работами здесь

Несколько переменных в Ajax DATA?
Как засунуть несколько переменных в ajax data? пробовал, но результата - 0 : data: { name : name,phone: phone, time: time },

Jquery(ajax)
Подскажите что не так как чтобы заработало? http://www.youtube.com/watch?v=P6YRYI97E6I пример взять от сюда... В этой ситуации не...

Jquery ajax
Почему не работает данный код? &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset = &quot;UTF-8&quot;&gt; &lt;title&gt;test&lt;/title&gt; &lt;script...

ajax и jquery
возможно ли с помощью .toggle() резализовать отправку переменной через ajax в php файл... допустим если кнопка нажата то отправляется...

Jquery+ajax
Всем здрасте. Возниклатакая проблема, по двум параметрам формирую выпадающий список таким вот образом: &lt;tr&gt; &lt;td...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru