Javascript 为什么PHP echo返回完整的标记html而不是echo中的内容?

Javascript 为什么PHP echo返回完整的标记html而不是echo中的内容?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个包含一些文本输入的html页面,一些使用ajax发布这些输入数据的jquery,还有一个php脚本来处理输入数据。然后,php脚本返回一些数据。然而,该警报包含一堆我不想返回的html标记。我不知道它为什么这样做 我的HTML: HTML表单 继续 code.js: $(document).ready(function () { $("#proceed").click(function () { var request = $.post("script.php",

我有一个包含一些文本输入的html页面,一些使用ajax发布这些输入数据的jquery,还有一个php脚本来处理输入数据。然后,php脚本返回一些数据。然而,该警报包含一堆我不想返回的html标记。我不知道它为什么这样做

我的HTML:

HTML表单 继续 code.js:

$(document).ready(function () {
    $("#proceed").click(function () {
        var request = $.post("script.php", { // Post input to php
            formData: $("#example").val()
        }, function (response) {
            console.log(response);
        });
    });
});
script.php:

如果我在输入中输入值xyz,那么最终记录到控制台的是:

<!DOCTYPE html>
<html>

<body>

    ["xyz"]</body>

</html>

为什么会发生这种情况?我怎样才能只得到括号内的值?谢谢

将script.php更改为仅包含以下php:

<?php
$example_input = isset($_POST["formData"]) ? $_POST["formData"] : null;
$keywords = preg_split("/[\s,]+/", $example_input);
echo json_encode($keywords);
?>

然后它将只返回该部分

将script.php更改为仅包含以下php:

<?php
$example_input = isset($_POST["formData"]) ? $_POST["formData"] : null;
$keywords = preg_split("/[\s,]+/", $example_input);
echo json_encode($keywords);
?>

然后它将只返回该部分

这就是PHP的工作方式。任何超出范围的内容都会正常输出。这就是如何将静态HTML或任何其他语言与动态结果混合


应该返回JSON的脚本不应该在其前后包含任何HTML代码。

这就是PHP的工作方式。任何超出范围的内容都会正常输出。这就是如何将静态HTML或任何其他语言与动态结果混合


只需返回JSON的脚本前后不应包含任何HTML代码。

Simple…不要在htmlHTML中包装php代码是echoSimple的一部分…不要在htmlHTML中包装php代码是echoSimple的一部分好的,这很有效!我没有想到要这么做,因为我总是看到php被包装在html中。我想如果php没有使用它,那么包含这些内容就没有意义了。你总能看到这一点,因为php主要用于填充HTML页面。好吧,这很管用!我没有想到要这么做,因为我总是看到php被包装在html中。我想如果php没有使用它,那么包含这些内容就没有意义了,因为php主要用于填充HTML页面。