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).