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

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

Спасибо за Ваше время и справку.

$("#ajaxBtn").click(function(){
  var inputText = $("#testText").val();

  $.ajax({ type: "POST",
    url: "index.php",
    data: "testAjax="+inputText,
    dataType: "html",
    success: function(html){
      alert(html);
    }
  });
});         
22
задан Martin54 24 August 2018 в 06:20
поделиться

3 ответа

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

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

36
ответ дан 29 November 2019 в 04:04
поделиться

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

<?php 
   if (isset($_POST["testAjax"])) { 
       echo $_POST["testAjax"]; 
   } 
?>

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

if (isset($_POST["testAjax"])) { 
    echo $_POST["testAjax"];
    exit();
}

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


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

12
ответ дан 29 November 2019 в 04:04
поделиться

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

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

6
ответ дан 29 November 2019 в 04:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: