Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/35: Рейтинг темы: голосов - 35, средняя оценка - 4.80
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99

Передача массива через POST и подгрузка файла через AJAX

06.01.2013, 20:34. Показов 6738. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Задача такого : есть элемент select в котором можно выбрать несколько вариантов. Далее по нажатию на кнопку, должен сформироваться массив и передаться в другой файл. И сразу же этот файл должен сюда подгружаются.
Идея такова что в первом элементе я выбираю курс студенческий, а во втором подгружаемом select должны быть группы относящиеся к выбранным курсам.
Вот код:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<script>  
        $(document).ready(function(){  
            $('#btn1').click(function(){
                $(function(){$.post('grup.php', { 'arr': getSelectedIndexes($('#section1'))}, function(){}); });
                $.ajax({  
                    url: "grup.php",
                    cache: false,  
                    success: function(html){  
                        $("#block1").html(html);  
                    }  
                }); 
                 
            }); 
         });  
 
            function getSelectedIndexes (oListbox)
            {
              var arrIndexes = new Array;
              for (var i=0; i < oListbox.options.length; i++)
              {
                  if (oListbox.options[i].selected) arrIndexes.push(oListbox.oListbox.options[i].value);
              }
              return arrIndexes;
            };
 
</script>
После нажатия на кнопку btn1, файл нужный погружается в div с id=block1. Но проблема в том что массив не передается
С аяксом я вот только сейчас столкнулся, потому как что работает не знаю

Заранее благодарен
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.01.2013, 20:34
Ответы с готовыми решениями:

Передача json данных методом POST через AJAX
нужно передать данные на сервер методом post передача на сервер req.open(&quot;POST&quot;, &quot;/controller/ajax.php&quot;) ...

Передача многомерного массива через Ajax
Добрый день. Имеется форма с чекбоксами, ссылка на скрин ниже https://ibb.co/dpQtWT Код вывода чекбоксов &lt;div...

Подгрузка элементов через Ajax
Доброго времени суток! Подскажите как сделать подгрузку элементов с помощью кнопку &quot;Загрузить еще&quot; без перезагрузки страницы....

7
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
06.01.2013, 20:44
вау... чего только не прочитаешь в рождественский вечер

массив человек передать пытается... опупеть
а почему же только массив?

массив - это виртуальность, принадлежащая текущему документу
в реальности массивов нет и не бывает
поэтому передать массив серверу (для последующей передачи другому файлу-документу) никак нельзя

между браузером и сервером передать можно только строки символов и бинарные данные файла
именно строки символов и какие-то файлы могут передаваться при использовании формы
ajax - это аналог сабмита формы, но без перезагрузки страницы
в большинстве современных браузеров ajax поддерживает пока передачу только строк символов
------

так что либо сами преобразовывайте свой массив в строку и её передавайте, а на сервере - снова превращайте в массив
либо воспользуйтесь форматом JSON
0
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
06.01.2013, 20:49  [ТС]
А каким образом Json мне поможет ?

То есть если место того что я сейчас делаю(передаю массив), я передам стоку - все будет работать ?
Мне в принципе не принципиально, главное передать данные, далее я смогу преобразовать их назад.

P.S.
Я и сам понимаю что блещу только своей не образованностью
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
06.01.2013, 21:01
Kseon12, вот представьте себе, что по улице идёт тридцать человек, одетых в одинаковую зелёную форму

что это?

правильно: для мужика, прошедшего хотя бы курс "Начальной военной подготовки" - это взвод
а для девочки-второклассницы - это просто толпа/группа людей

в системе понятий знакомых с военным делом - это взвод
в системе понятий простых обывателей - толпа

так и массив
для компьютерной памяти - это "толпа" ячеек памяти, забитая какой-то информацией
и только для конкретного документа и конкретного js-скрипта в нём эта самая "толпа" каким-то образом превращается в массив

JavaScript
1
2
3
4
5
6
7
8
9
var arr = [1, 5, 7, 2, 4, 8]; // это массив
 
// выберите ЛЮБОЙ разделитель, например _ЁКЛМН_
// и преобразуйте ваш массив в строку методом join ("_ЁКЛМН_"), чтобы получилось
var str = '1_ЁКЛМН_5_ЁКЛМН_7_ЁКЛМН_2_ЁКЛМН_4_ЁКЛМН_8';
 
// вот ЭТО уже МОЖНО передать
// потому что это реальный НАБОР СИМВОЛОВ
// на сервере это дело возвращайте в массив методом explode ("_ЁКЛМН_", );
1
61 / 3 / 1
Регистрация: 22.12.2011
Сообщений: 99
06.01.2013, 22:28  [ТС]
Собственно чем я сейчас и занимаюсь ) Благодарю.

А в остальном ошибок нету, правильно ли я вообще данные пытаюсь передать ?

-------------------------------

Сделал так, но почему то ничего не передается

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script>  
        $(document).ready(function(){  
            $('#btn1').click(function(){
                $(function(){$.post('grup.php', { 'arr': getSelectedIndexes($('#section1'))}, function(){}); });
                $.ajax({  
                    url: "grup.php",
                    cache: false,  
                    success: function(html){  
                        $("#block1").html(html);  
                    }  
                }); 
                 
            });  
           }); 
            function getSelectedIndexes (oListbox)
            {
              var arrIndexes = new string;
              for (var i=0; i < oListbox.options.length; i++)
              {
                  if (oListbox.options[i].selected) arrIndexes+=oListbox.oListbox.options[i].value+'+';
              }
              return arrIndexes;
            };
 
</script>
Добавлено через 1 час 19 минут
Еще вот так пробую, но тоже не получается (в етом случае файл вообще не подгружается )

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready(function(){  
            $('#btn1').click(function(){
                
                $.ajax({  
                    type: "POST",
                    dataType: "text",
                    url: "grup.php",
                    data: "text="+ getSelectedIndexes($('#section1')),
                    cache: false,  
                    success: function(html){  
                        $("#block1").html(html);  
                    }  
                }); 
                 
            });
0
2 / 4 / 0
Регистрация: 18.02.2012
Сообщений: 43
12.01.2013, 20:26
что один, что второй пример ни понятно к чему и почему. Что именно тебе надо передать? смотреть надо на весь код, а не на кусок, и почему у тебя ничего не получается
0
55 / 55 / 8
Регистрация: 29.08.2012
Сообщений: 175
12.01.2013, 22:26
JavaScript
1
2
3
$(function(){
$.post('grup.php', { 'arr[]': $('#section1').val()}, function(){}); 
});
Попробуй так, если #section1 - это id множественного селекта. Если так сильно хочется передать его функции в качестве параметра, то знай, что $('#section1') - это объект JQuery, представляющий из себя массив объектов JavаScript, а не сам объект JavaScript. Первый и, в твоем случае, единственный объект JS берется вот так: $('#section')[0].
$('#section1').val() должен вернуть готовый массив твоих селектов.
0
141 / 63 / 11
Регистрация: 19.06.2012
Сообщений: 250
12.01.2013, 22:28
Тема более не актуально на сколько мне известно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2013, 22:28
Помогаю со студенческими работами здесь

Подгрузка картинок через ajax
Здравствуйте. Сделал кое-какое подобие галереи. Пример моего сайта. Генерируется каскад превьюшек с id по порядку (showimage1, showimage2,...

Подгрузка страниц через JS и AJAX
Всем доброго времени суток уважаемые форумчане. Вообщем недавно взялся изучать различные плюшки связанные с аяксом и джава скриптами. ...

Постоянная подгрузка контента через AJAX
Здравствуйте всем. Подскажите как лучше организовать область постоянной подгрузкы контента, через AJAX. Будто страница постов, и только...

Подгрузка контента через ajax со сменой URL
Вот таким кодом я подгружаю это дело: function followLink(event, link) { var nameLink = link.innerHTML; ...

Передача значение полей через Ajax-метод с использованием ассоциативного массива на php сервер
Добрый день граждане, возможно ли так реализовать ? Предположим что есть 3 поля. Каким способом можно передать значения этих полей при...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru