Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 25.10.2018
Сообщений: 97

Ajax выводит undefined

29.03.2021, 17:18. Показов 2003. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь передать данные из PHP в Ajax. Но не получается выводить результат обработки PHP. Поучают результат Стоимость: undefined
Код HTML куда должна выводится результат
HTML5
1
<div class="title-form" id="result"></div>
Код JS
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$("#bronbtn").click(function()
{
   event.preventDefault();
   sendAjaxForm('result','ajax_form','bronirovanie.php');
   
  });
function sendAjaxForm(result,ajax_form,url){
  $.ajax({
    url: url,
    type: "POST",
    dataType: "html",
    data: $("#"+ajax_form).serialize(),
    success: function(response){
      $('#result').html('Стоимость':+response.sum');
    },
    error: function(response) { // Данные не отправлены
            $('#result').html('Ошибка. Данные не отправлены.');
      }
  });
}
Код PHP где происходит обработка, на сайте я выбираю из select один из двух вариантов и ввожу число, потом сравниваю выбор и решаю какая операция должна производится, потом вывожу результат
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$select= $_POST['select'];
                              $days=$_POST['days'];
                              $sum=0;
                              if ($select=='Отель') {
                                # code...
                                      $sum=$days*3000;
                              }
                                 if ($select=='Гостевой дом') {
                                # code...
                                      $sum=$days*10000;
                              }
                              echo json_encode($sum);
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2021, 17:18
Ответы с готовыми решениями:

length выводит undefined
Здравствуйте! У меня есть следующая задача: Задан текст. Определить позицию первого символа &quot;a&quot; в тексте и вывести на экран...

Выводит undefined
Здравствуйте. $(&quot;#dob_opr&quot;).on(&quot;click&quot;,function(){ $(&quot;#doppull&quot;).html(&quot;&lt;span&gt;Заголовок опроса:&lt;/span&gt;&lt;div&gt;&lt;input...

Почему здесь выводит Undefined g ?
Почему здесь выводит Undefined g ? Как от этого избавиться? let init = () =&gt; { image = document.querySelector(&quot;&quot;); ...

10
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
29.03.2021, 17:33
1) У вас бардак с кавычками на 14й строке JS-кода.
2) Если вы ожидаете с сервера данные в json-формате, то почему указываете dataType: "html"? Либо укажите корректный дата-тайп, либо парсите полученную строку в ответе. Первый вариант предпочтительнее.
3) Нет кода самой формы. Возможно там ошибки. Проверьте на стороне сервера, что лежит в массиве $_POST. Всё ли там есть?

Добавлено через 3 минуты
4) Если вы на выходе ожидаете получить просто число, то нет никакой необходимости кодировать его в json. Соответственно пункт 2 игнорируйте и уберите json_encode().

Добавлено через 2 минуты
5) В случае, если вы ожидаете с сервера просто число, то оно будет храниться в переменной response. Свойства sum у этой переменной не будет. Отсюда и undefined.
1
1 / 1 / 1
Регистрация: 25.10.2018
Сообщений: 97
29.03.2021, 17:46  [ТС]
HTML5
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
<form class="bron-form" action="bronirovanie.php" id="ajax_form" method="POST">
                        <p class="title-form">Оставьте заявку</p>
                        <div class="inp-field">
                            <input type="text" name="name" class="form-item" required="required" id="name-contact">
                            <label for="name-contact">Имя</label>
                        </div>
                        <div class="inp-field">
                            <input type="text" name="phone" class="form-item phone" required="required" id="phone">
                            <label for="phone">Телефон</label>
                        </div>
                            <div class="inp-field">
                        
                            <select class="form-item"  name="select" id="selecthotel" required="required">
  <option value="Отель">Отель</option>
  <option value="Гостевой дом">Гостевой дом</option>
  <option value="Коттедж">Коттедж</option>
</select>
                        </div>
                            <div class="inp-field">
                            <input type="number" name="days" class="form-item" selected="selected" required="required" id="days">
                            <label for="days">Количество дней</label>
                                
                        </div>
                        <div class="title-form" id="result"></div>
                        <input type="submit" value="Узнать стоимость" id="bronbtn" class="color_button">
                    
                    </form>
Добавлено через 46 секунд
Результат проверки самого PHP Обработки проходит, получаю нужное число

Добавлено через 1 минуту
Если убрать respons.sum и оставить только respons, при нажатии на кнопку внизу появляются моя страница повторно
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
29.03.2021, 17:50
Лучший ответ Сообщение было отмечено Grandina как решение

Решение

Цитата Сообщение от Grandina Посмотреть сообщение
Если убрать respons.sum и оставить только respons, при нажатии на кнопку внизу появляются моя страница повторно
JavaScript
1
2
3
4
5
6
$("#bronbtn").click(function(event)
{
   event.preventDefault();
   sendAjaxForm('result','ajax_form','bronirovanie.php');
   
  });
1
1 / 1 / 1
Регистрация: 25.10.2018
Сообщений: 97
29.03.2021, 17:52  [ТС]
Понял,благодарю, а можно как то не создавая отдельно под PHP новый файл, по другому записать?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
29.03.2021, 17:53
Уточните вопрос, пожалуйста. Не совсем понял.
0
1 / 1 / 1
Регистрация: 25.10.2018
Сообщений: 97
29.03.2021, 17:54  [ТС]
Ну я как понял, из-за того что я указываю на bronirovanie.php, у меня вся страница выводится. Можно как-то не создавая новый PHP файл, конкретно только PHP код выводить?
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
29.03.2021, 17:57
Цитата Сообщение от Grandina Посмотреть сообщение
PHP код выводить?
Вам нужно выводить PHP-код или результат его работы?
PHP-код из первого поста - это всё содержимое файла bronirovanie.php или только его кусок?
0
1 / 1 / 1
Регистрация: 25.10.2018
Сообщений: 97
29.03.2021, 17:58  [ТС]
bronirovanie.php это страница с html кодом , PHP из первого поста, эта его кусок только
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
29.03.2021, 18:02
Тогда в начале этого файла проверяйте, прилетел ли запрос ajax-ом или обычным методом. Если ajax-ом, вычисляйте нужное значение, выводите его конструкцией echo и останавливайте дальнейший вывод функцией exit(). Но лучше создать отдельный файл для обработки ajax-запросов.
0
1 / 1 / 1
Регистрация: 25.10.2018
Сообщений: 97
29.03.2021, 18:03  [ТС]
В принципе, все таки создал новый файл. Спасибо большое, целый день проблему пытался решить. Тему можно закрывать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2021, 18:03
Помогаю со студенческими работами здесь

Не ясно почему выводит undefined
Всем добрый вечер и проблема заключается в следующем. Через событие .on хочу вывести переменную linkVar, а вместо этого выводит undefined....

Не выводит значение пишет Undefined
Нужно чтоб при клике на кнопку с #sub, получил значение полей с #por_den (это инпуты), а оно не выводит пишет Undefined . В консоле...

Связка php+mysql+ajax: Uncaught TypeError: undefined is not a function
Здравствуйте! Вот уже более 6 часов не могу найти причину неработоспособности своего кода (новичок в этом деле). Есть select в...

Ajax берет запрос из php файла в формате JSON и возвращает undefined
&lt;?php header(&quot;Access-Control-Allow-Origin: *&quot;); $mysqli = mysqli_connect('localhost', 'root', '', 'kursovaya'); if...

AJAX не выводит текст
var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru