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

У меня есть функция 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); } }); }); 

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

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

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

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

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

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

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


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

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

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