Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1

Передача данных с формы в AJAX запрос

25.03.2016, 13:55. Показов 3166. Ответов 11

Студворк — интернет-сервис помощи студентам
как передать в AJAX запрос значение переменных из формы сюда data: "name=JohnBoston&question=bla_bla_bl a"
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<script src="jquery-1.12.0.min.js"></script>
<script>
    $(document).ready(function(){
        PopUpHide();
    });
    
    function PopUpShow(){
        $("#form").show();
    
        $(function() {
    
            $('input').bind('focus blur', function(e) {
                var borderVal = e.type == "focus" ? "medium solid green" : "";
                $(this).css("border", borderVal);
            });
        
        });
    
    }
    
    function PopUpHide(){
        $("#form").hide();
    
        $.ajax({
            type: "POST",
            url: "http://test.php/sender.php",
            data: "name=JohnBoston&question=bla_bla_bla",
        });     
    
    }
    
</script>
 
<div class="b-container">
    <a href="javascript:PopUpShow()">Задать вопрос</a>
</div>
<div class="b-popup" id="form">
    <div class="b-popup-content">
        <form>
            <p>Имя: <input type="text" name="name"></p>
            <p>Вопрос: <input type="text" name="question"></p>
            <a href="javascript:PopUpHide()">Отправить</a>
        </form>
    </div>
</div>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2016, 13:55
Ответы с готовыми решениями:

Передача данных через Ajax-запрос
Не могу понять, как правильно передавать и принимать несколько переменных через Ajax-запрос.. С одной всё работает отлично. Очень прошу...

Передача данных в табличку, AJAX запрос
добрый вечер коллеги, подскажите пожалуйста как мне передать еще один параметр через ajax вместо текста &quot;&amp;pair_id=Ld&quot; : ...

AJAX передача данных на сервер с формы
День добрый! Пытаюсь передать с формы поле с данными в обработчик, вроде передается, но делается редирект на скрипт после нажатия кнопки, а...

11
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 22
25.03.2016, 15:35
var data= $('#form').serialize();

.serialize() это функция jQuery. Она отправляет сразу значения всех полей.

Далее отправка в file.php:

$.get('file.php',data, callback);

callback - функция обратного вызова (не обязательно).
В файле file.php их обрабатывать так как обычно $perem=$_POST['pole'];

Не будет, кажется, только данных о нажатии кнопки submit
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
26.03.2016, 07:03  [ТС]
Пробовал и так:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<script>
    $(document).ready (
        function(){
            PopUpHide();
        }
    );
    
    function PopUpShow(){
        $("#form").show();
    
        $(function() {
            $('input').bind('focus blur', function(e) {
                var borderVal = e.type == "focus" ? "medium solid green" : "";
                $(this).css("border", borderVal);
                }
            );
            }
        );
    
    }
    
    function PopUpHide(){
        var FormData = $('#form').serialize();
        $("#form").hide();
        $.ajax({
            type: "POST",
            url: "sender.php",
            data: FormData,
            }
        );
        alert ('Вопрос отправлен.');     
        
    }
</script>
 
<div class="b-container">
    <a href="javascript:PopUpShow()">Задать вопрос</a>
</div>
<div class="b-popup" id="form">
    <div class="b-popup-content">
        <form>
            <p>Имя: <input type="text" name="name"></p>
            <p>Вопрос: <input type="text" name="question"></p>
            <a href="javascript:PopUpHide()">Отправить</a>
        </form>
    </div>
</div>
Но данные не приходит, да и скрип при обновлении странички срабатывает, хотя нужно при нажатии "Отправить"
0
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 22
26.03.2016, 10:17
Я так понял, что Вы ошибочно записали в document.onready не PopUpShow() а PopUpHide();

$(document).ready (
function(){
PopUpHide();
}
);


Вот у Вас и запускается в начале.

Сообщение об отправке, а затем закрытие формы лучше сделать в случае успеха отправки.

function PopUpHide(){
var FormData = $('#form').serialize();

$.ajax({
type: "POST",
url: "sender.php",
data: FormData,
success: function(){
alert ('Вопрос отправлен.');
$("#form").hide();
}
}
);

Могут быть ошибки и в php файле.
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
26.03.2016, 11:33  [ТС]
nickolayF, сделал так, но теперь кнопки не пашут помогите починить.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<script src="jquery-1.12.0.min.js"></script>
<script>
$(document).ready (
    function(){
        //PopUpHide();
    }
);
    
function PopUpHide() {
    $('#FormQuestion').hide();
    var StatusForm = 0;
}   
    
$(function() {
    $('#FormButton').click (
        if (StatusForm == 0) {
            $('#FormQuestion').show();
            StatusForm = 1;
        } else {
            $('#FormQuestion').hide();
            StatusForm = 0;
        };
    );
    
    $('#SendButton').click (
    function(e) {
        e.preventDefault();
        var FormData = $('#FormQuestionData').serialize();
        $.ajax({
            url:'sender.php',
            type:'POST',
            data: FormData,
            success: 
            function (mess) {
                alert(mess);
                $('#form').hide();
                }
        });
    }); 
});     
</script>
<div>
    <button id="FormButton" type="button">Задать вопрос</button>
</div>
<div id="FormQuestion">
    <form id="FormQuestionData">
        <p>Имя: <input type="text" name="name"></p>
        <p>Вопрос: <input type="text" name="question"></p>
        <button id="SendButton" type="button">Отправить</button>
    </form>
</div>
0
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 22
26.03.2016, 15:17
Первая кнопка у Вас не работает, так как Вы определили, что при statuse 1 div c формой будет закрываться, но сам статус при загрузке не установили.

Да и нужны ли статусы. Не проще проверить состояние css свойства display?

$(function() {
$('#FormButton').click(function(){
if($('#FormQuestion').css('display')=="b lock"){
$('#FormQuestion').hide();
}else $('#FormQuestion').show();
});

PopUpHide() и PopUpShow() - можно из кода убрать. Они тогда ничего не делают.

e.preventDefault на кнопках ставить не нужно. Это ставилось бы, если кнопка имела type="submit". Тогда отмена действия по умолчанию отменяла бы отправку формы независимо от нашей программы.

Если при отправке формы, вы решили прятать не саму форму, а содержащий ее див, то его надо закрывать и после отправки.

$('#SendButton').click (
function() {
var FormData = $('#FormQuestionData').serialize();
$.ajax({
url:'sender.php',
type:'POST',
data: FormData,
success:
function (mess) {
alert(mess);
$('#FormQuestion').hide(); // замена #form
}
});
});

});
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
26.03.2016, 15:35  [ТС]
Цитата Сообщение от nickolayF Посмотреть сообщение
так как Вы определили, что при statuse 1 div c формой будет закрываться, но сам статус при загрузке не установили.
А это? закомментил потому временно, пока кнопки не работают, проверял отправку с формы данных:
JavaScript
1
2
3
4
5
6
7
8
9
10
$(document).ready (
    function(){
        PopUpHide();
    }
);
    
function PopUpHide() {
    $('#FormQuestion').hide();
    var StatusForm = 0;
}
Цитата Сообщение от nickolayF Посмотреть сообщение
Да и нужны ли статусы.
Нужны, я их потом буду еще использовать, если можно то хотелось бы посмотреть на код со статусами.
Цитата Сообщение от nickolayF Посмотреть сообщение
Если при отправке формы, вы решили прятать не саму форму, а содержащий ее див, то его надо закрывать и после отправки.
Зачем, на закрытие есть же кнопка "Задать вопрос" (нажали - открыли форму, еще раз нажали - закрыли форму). А вот очищать данные после отправки, вот это лишнем не будет, можно добавить на форму кнопку:
HTML5
1
<button id="ClearForm" type="reset">Очистить</button>
и нажимать ее программно (через id="ClearForm"), но как это сделать я опять не знаю.
0
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 22
26.03.2016, 15:41
Вообще-то, если надо, чтобы появлялось поп-ап по центру окна, создается два дива 1) модальное окно с формой (у Вас #FormQuestion) и 2) полупрозрачная подложка #underlay, которая растягивается на весь экран. Обе скрываются
- им ставится в css display: none.

Подложка:
#underlay{
width:100%;
height:100%;
position:fixed;
background-color:black;
left:0;
top:0;
opacity:0.5;
z-index:1;
display:none;
}

Модальное окно:

#FormQuestion{
width:400px;
height: 300px;
display:none;
position:fixed;
top:50%;
left:50%;
margin-top:-150px; // - половина высоты
margin-left:-200px; // - половина ширины
z-index:2; // Индекс на 1 больше чем у подложки, чтобы было выше ее и видно.
}

По клику на кнопке (в моем примере #open-button). Оба открываются с задержкой.

$('#open-button').click(function(){
$('#FormQuestion').fadeIn(500);
$('#underlay').fadeTo(500,0.5);
$('#underlay').fadeIn(500);
});

По клику на кнопке #close_button - закрываются.

$('#close_button').click(function(){
$('#FormQuestion').fadeOut(500);
$('#underlay').fadeOut(500);
});
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
26.03.2016, 15:45  [ТС]
Цитата Сообщение от nickolayF Посмотреть сообщение
Вообще-то, если надо, чтобы появлялось поп-ап по центру окна, создается два дива 1) модальное окно с формой (у Вас #FormQuestion) и 2) полупрозрачная подложка #underlay, которая растягивается на весь экран. Обе скрываются - им ставится в css display: none.
СПС учту это, может пригодиться, не сейчас но в будущем.
0
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 22
26.03.2016, 15:51
P.S. Поля формы можно очистить $('#form').reset();
или очистить значения отдельных полей $('#myInput).val('');

Статусы, пожалуйста себе ставьте:

$(function() {
var status;
$('#FormButton').click(function(){
if($('#FormQuestion').css('display')=="b lock"){
status=1;
$('#FormQuestion').hide();
}else {
$('#FormQuestion').show();
status=0;
}
});
0
26.03.2016, 15:56  [ТС]

Не по теме:

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

0
0 / 0 / 0
Регистрация: 13.03.2016
Сообщений: 22
26.03.2016, 15:59
Честно говоря, я здесь недавно. Не освоился. Отправляю в отформатированном виде с табами. А отображается в таком. Надо еще разобраться... чего здесь и как работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.03.2016, 15:59
Помогаю со студенческими работами здесь

Передача и вывод данных формы PHP, ajax
Добрый день! Столкнулся с проблемой: данные выводятся после перезагрузки страницы. Бился долго, вот решил попросить помощи Код...

Передача данных формы скрипту php посредством js (ajax)
Вопрос по ajax. &lt;?php header('Content-type: text/html; charset=UTF-8'); ?&gt; &lt;html&gt; ...

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

Не работает AJAX-запрос при отправке данных с формы на почту
Недавно сверстал такой сайт ul-massage.ru. Начал настраивать форму отправки заявки на услугу (пока что только на примере формы в секции...

Передача параметров в AJAX GET запрос.
var r = new XMLHttpRequest(); r.open(&quot;GET&quot;, &quot;https://***/edit.php?fname=***&amp;type=set&amp;ftext=&quot; + document.getElementById('taii').value,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru