gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 04:15:45 25 4
gpt4 key购买 nike

我有一个带有一些文本输入的 html 页面,一些使用 ajax 发布来自这些输入的数据的 jquery,以及一个用输入数据做一些事情的 php 脚本。然后 php 脚本返回一些数据。但是,警报包含一堆我不想返回的 html 标记。我不确定为什么要这样做。

我的 HTML:

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>HTML Form</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
<input type="text" name="example" id="example">
<button type="button" class="btn btn-primary" id="proceed">Proceed</button>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="code.js"></script>
</body>

代码.js:

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

脚本.php:

<!DOCTYPE html>
<html>

<body>

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

</html>

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

<!DOCTYPE html>
<html>

<body>

["xyz"]</body>

</html>

为什么会这样,我怎样才能只得到括号内的值?谢谢!

最佳答案

这就是 PHP 的工作方式。 <?php ... ?> 之外的任何内容是正常输出。这就是将静态 HTML(或任何其他语言)与动态结果混合的方式。

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

关于javascript - 为什么 PHP echo 返回完整标记的 html 而不是 echo 中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57080489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com