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

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

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

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

$.ajax({ type: "POST",
url: "index.php",
data: "testAjax="+inputText,
dataType: "html",
success: function(html){
alert(html);
}
 });
});         

Ответы

Ответ 1

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

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

Ответ 2

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

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

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

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

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


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

Ответ 3

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

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