Php возвращает всю страницу

JQuery Ajax возвращает всю страницу

У меня есть функция jquery-ajax, которая отправляет данные на php script, и проблема связана с возвращаемым значением, она возвращает целую страницу вместо одного значения. Спасибо за ваше время и помощь.

Какое возвращаемое значение вы ожидаете? JSON, текст, XML и т.д . Я думаю, это как-то связано с вашим PHP-скриптом, поэтому было бы полезно, если бы вы опубликовали его.

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

3 ответа

Как это работает. Вы запрашиваете index.php через AJAX, поэтому вы получите содержимое index.php .

Если вы хотите получить конкретное значение, создайте новую страницу PHP, которая выводит именно это значение, и вместо этого запрашивайте это содержимое.

Вау, спасибо большое. Это действительно информативно. Я сталкивался с этой проблемой в ряде различных проектов, не зная, где я ошибался. Действительно полезно!

Итак, когда у вас есть это на вашем index.php в начале?:

Если этот script выводит дополнительный текст, то, конечно, это будет также вызвано вызовом Ajax. Вы можете поместить exit() после эха, чтобы предотвратить обработку script:

Также используйте dataType: ‘text’ , поскольку возвращаемое вами значение, очевидно, не является HTML.

Или, как предлагают другие, создайте новую страницу, которая отвечает за обращение с запросом Ajax. Если вы делаете больше, чем просто вывод полученного значения (т.е. Более сложные операции), вы должны сделать это в любом случае.

@Felix Феликс, я столкнулся с подобной проблемой. Можете ли вы подробнее рассказать о своем ответе? Я беру ввод из формы HTML и передаю его в запрос php / mysql. Итак, я включил все в один файл. Есть ли лучший способ справиться с этим? любые ссылки на пример помогут. Спасибо

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

Итак, вместо «index.php» создайте файл с именем «my-ajax- script.php». Этот файл должен содержать любые необходимые «include()» файлы для подключения к базе данных и вашим файлам php-функций (т.е. Для дезинфекции данных POST). Затем файл должен иметь код, который обрабатывает данные POST, а также выводит данные в комплекте с некоторыми тэгами html. Эти данные будут вставлены в вашу существующую DOM (разметка html).

Ещё вопросы

  • 1 оператор if не работает с целочисленными значениями
  • 1 Чтение зашифрованной PKCS8 SpongyCastle Java
  • 0 Дайджест аутентификации API CodeIgniter Rest
  • 1 Как Eclipse запускает карту, сокращая работу?
  • 1 R Shiny key и actionButton привязка к реактивным значениям [дубликаты]
  • 0 нумерация страниц в формате mpdf с помощью шаблонного механизма smarty
  • 0 Обратные ссылки в PHP preg_replace () нестабильны?
  • 0 Cakephp Auth-> user () null
  • 1 Облачные функции для Firebase для индексации объектов базы данных Firebase в Алголии
  • 0 $ location в $ timeout в AngularJS
  • 0 Mysql phpmyadmin показать пустую мощность
  • 0 angularjs app.service (…) вызывает «Uncaught TypeError: undefined не является функцией»
  • 1 Как проверить Http / 2 через ohttp?
  • 1 Глобалы JS вызывают сбой при оценке
  • 1 Растровое изображение из смещения байтового массива
  • 0 Поместите файл HTML внутри div в другой файл HTML
  • 1 ReaderWriterLock.UpgradeToWriterLock не генерирует исключение по истечении времени ожидания?
  • 0 Должен ли я считать значения RGB пикселя одним значением?
  • 0 Обработчики событий не запускаются
  • 0 Значения длинных URL не отправляются в Code Igniter
  • 0 Можете ли вы дать столбцу стандартное значение?
  • 0 Chrome заблокирован localhost с ошибкой ваше соединение не является частным
  • 0 mmap и выравнивание страниц данных — это увеличивает производительность?
  • 1 Подключение эмулятора Windows Phone 8 к хост-машине
  • 1 Создайте ненулевой экземпляр любого типа числа / примитивного значения, заданного типом в C #
  • 0 Почему последний список в слайдере не fadeIn / FadeOut / show / hide?
  • 1 Почему StringBuilder намного быстрее, чем String
  • 0 Добавление пользовательских атрибутов в шаблон ejs
  • 1 C # — включить / отключить DHCP
  • 1 Сброс проверки подлинности с помощью форм в веб-методе
  • 0 Как добавить модуль в AngularJS ngBoilerplate?
  • 0 Как переопределить прослушивание кликов для кнопки в веб-просмотре
  • 0 Apache conf для nginx conf, чтобы избежать CORS
  • 1 Функция клиента чата Twilio Android getSubscribeedChannels () возвращает неполные каналы
  • 1 Java или Scala RFC5987
  • 1 WCF замедляется с несколькими запросами
  • 0 Удалить файл из папки и MySQL присоединился к таблице
  • 1 Назначение NaN -1 после выполнения StandardScaler
  • 0 C ++. как читать из файла и сопоставлять с вводом
  • 0 jQuery .prepend результаты JSON для нескольких div
  • 1 openCv onCameraFrame пытается вызвать TextView.setText ()
  • 0 Изменение фона тела при наведении на ссылку
  • 1 Как обрабатывать большой размер ввода в Java?
  • 1 Как я могу приносить информацию из ElasticSearch в пакетном режиме, если она находится на многих уровнях?
  • 0 Сортировка столбцов таблицы в AngularJS
  • 0 Логин, получение имени и ошибка выхода
  • 0 href связанный swfobject (без поддержки clicktag)
  • 0 Ширина и высота страницы заполнения холста
  • 1 Запустите скрипт на удаленном компьютере без преобладания sudo
  • 1 Python Plotly Sankey Graph не отображается

Источник

JQuery Ajax возвращает всю страницу

У меня есть функция jquery-ajax, которая отправляет данные в сценарий php, и проблема заключается в возвращаемом значении, он возвращает всю страницу вместо одного значения.

Спасибо за ваше время и помощь.

3 ответа

Вот как это работает. Вы запрашиваете index.php через AJAX, так что вы получите все содержимое index.php являются.

Если вы хотите конкретное значение, создайте новую страницу PHP, которая выводит только это значение, и вместо этого запросите содержимое этого URL.

Так что, когда у вас есть это на вашем index.php в начале?:

Если этот скрипт выводит дополнительный текст, то, конечно, он также будет получен вызовом Ajax. Вы можете положить exit() после эха, чтобы предотвратить дальнейшую обработку скрипта:

Также используйте dataType: ‘text’ поскольку возвращаемое вами значение, очевидно, не является HTML.

Или, как предлагают другие, создайте новую страницу, которая отвечает за обработку запроса Ajax. Если вы делаете больше, чем просто выводите полученное значение (т. Е. Более сложные операции), вы должны сделать это в любом случае.

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

Поэтому вместо «index.php» создайте файл с именем «my-ajax-script.php». Этот файл должен включать все необходимые файлы «include()» для подключения к базе данных и вашим файлам функций php (т. Е. Для очистки данных POST). Затем файл должен иметь код, который обрабатывает данные POST и выводит данные вместе с некоторыми HTML-тегами. Эти данные будут вставлены в ваш существующий DOM (html-разметка).

Я только что перешел с чистого JavaScript на jQuery из-за давления со стороны сверстников и нахожу это разочаровывающим. В частности, получение целых страниц PHP из запроса Ajax POST. Я читал и перечитывал эту страницу несколько раз за последние два дня, когда это продолжалось. В конце концов, проблема в обоих случаях заключалась в том, что я либо неправильно написал URL-адрес php в настройке Ajax, либо указал неправильный путь к файлу.

Иногда сбивают с толку самые простые мелочи!

Я надеюсь, что это сэкономит кому-нибудь время.

Обновлено 2020: если вы используете платформу MVC, то URL-адрес НЕ ДОЛЖЕН быть index.php, вместо этого используется полный каталог:

 url: "http://localhost/mvc/controller/function/param1/param2", 

Старый ответ 2019:

В моем случае любой, у кого есть такая же проблема, пытается использовать

require_once вместо того require в вашем php-файле начальной загрузки, чтобы предотвратить повторный рендеринг всей страницы через систему.

Источник

Ajax GET возвращает всю страницу или только ответ PHP

Несколько дней я пытаюсь заставить этот код работать:

if (($_SERVER['REQUEST_METHOD'] === 'GET') && isset($_GET['tkn']) && isset($_GET['t'])) < $tkn = $mysqli->real_escape_string($_GET['tkn']); $t = $mysqli->real_escape_string($_GET['t']); if (time() < $t) < $info["msg"] = "Error! link valid!"; $info["cls"] = "brand"; > else < $info["msg"] = "Error! Link expired!"; $info["cls"] = "danger"; > $mysqli->close(); json_encode($info); > 
$.ajax(< url: window.location.href, success: function(response) < console.info(response); >, error: function(response) < console.info(response); >, dataType: "JSON" >); 

Если я использую текущий код PHP без добавления выход (json_encode ($ info));, он вернет весь тег html без какого-либо текста, возвращаемого кодом PHP.

Если я добавляю выход (json_encode ($ info));, он будет отображать только этот код на белом фоне.

 elseif ($_SERVER['REQUEST_METHOD'] === 'GET') < //other code goes here echo json_encode($info); exit; // here is displayed only the message(without html part) if I add exit; //and if i dont add exit is displayed the message on white background on // the top of the page(html part is working); ?>//html part

как насчет return json_encode($info); или echo json_encode($info);

Вы не сохраняете или не повторяете результат json_encode() , и вы не говорите скрипту о прекращении выполнения. Когда вы используете exit() , вы сбрасываете результат и приказываете сценарию прекратить выполнение.

@JacekBBudzynski echo json_encode ($ info); добавит белую часть с ответом php вверху страницы, а вернуть json_encode ($ info); я получу белую страницу, не замечая ее.

@MagnusEriksson Я использую тот же формат exit(json_encode($info)); для метода публикации, и, похоже, он работает. 🙁 Не понимаю, почему сейчас не работает.

«echo json_encode ($ info); добавит белую часть с ответом php вверху страницы» — вам все равно нужно убить скрипт после эха. У: echo json_encode($info); exit; . Если это не то, что вы ищете, то я понятия не имею, каков ожидаемый результат.

Вы отправляете свой AJAX-запрос на window.location.href , поэтому тот же URL-адрес, с которого уже был загружен текущий документ. Таким образом, даже если вы проверяете метод запроса и заданы ли определенные параметры GET, результат будет одинаковым для обоих (загрузка самой страницы и запрос AJAX). Так что, конечно, вы получаете данные JSON, отображаемые где-то в page — потому что ваш серверный скрипт пока не может различить оба запроса.

Я отредактировал свой пост и добавил подробности.

А также …? Является ли login.php тем, что содержится в window.location.href , когда вы делаете запрос AJAX? Если нет, то какое отношение это имеет к вопросу? Включен ли login.php где-нибудь еще или — что?

Все, что я говорю, это то, почему я работаю над методом публикации, а не над методом получения. В методе post (php) тег html запускается после выхода, а в методе get — нет. Почему?

Источник

Ajax GET возвращает всю страницу или только ответ PHP

Если я использую текущий код PHP без добавления exit (json_encode ($ info)); Он вернет весь тег html без текста, возвращаемого кодом PHP. Если я добавляю exit (json_encode ($ info)); он отобразит только этот код на белом фоне. Есть идеи? Спасибо! Здесь мой формат login.php

 elseif ($_SERVER['REQUEST_METHOD'] === 'GET') < //other code goes here echo json_encode($info); exit; // here is displayed only the message(without html part) if I add exit; //and if i dont add exit is displayed the message on white background on // the top of the page(html part is working); ?>//html part

Вы не сохраняете и не повторяете результат json_encode() и не говорите сценарию прекратить выполнение. Когда вы используете exit() , вы выводите результат и говорите сценарию прекратить выполнение.

@JacekBBudzynski echo json_encode ($ info); добавит белую часть с ответом php вверху страницы и вернет json_encode ($ info); я получу белую страницу, не отмечая ее.

@MagnusEriksson Я использую тот же формат exit(json_encode($info)); для почтового метода, и, кажется, работает. Я не понимаю, почему сейчас не работает.

«echo json_encode ($ info); добавит белую часть с ответом php вверху страницы» — вам все равно нужно убить скрипт после эха. Do: echo json_encode($info); exit; , Если это не то, что вы ищете, тогда я понятия не имею, каков ожидаемый результат.

Я сейчас запутался. «Если я использую текущий код PHP без . » «Если я добавляю . «

Вы отправляете свой AJAX-запрос в window.location.href , поэтому тот же URL, с которого уже был загружен текущий документ. Таким образом, даже если вы проверяете метод запроса и задаете ли конкретные параметры GET — результат все равно будет одинаковым как для загрузки самой страницы, так и для запроса AJAX. Поэтому, конечно, вы получите данные JSON, показанные где-то на page — потому что ваш серверный скрипт до сих пор не имеет возможности различить оба запроса.

А также …? Является ли login.php window.location.href когда вы делаете запрос AJAX? Если нет, то как это относится к вопросу? Включается ли login.php где-нибудь еще или — что?

Все, что я говорю, это то, почему работает над методом post, а не работает в методе get. В методе post (php) после выхода работает HTML-тег, а в методе get — нет. Почему?

Источник

Читайте также:  Hibernate annotations common reflection java
Оцените статью