所以我现在有 3 个文件(一个视图,由一个列表.js和列表.php组成,一个控制器由一个get_data.php文件组成)。
get_data.php:
<?php
$str_json = file_get_contents('php://input');
$data = json_decode($str_json, true);
$token = $data['token'];
$request = $data['request'];
echo "<p>" . $request . "</p>";
?>
列表.js:
function getItems(list) {
var http = new XMLHttpRequest();
var url = "../model/get_data.php";
var dataPost = {"token" : true, "request": list};
var str_json = JSON.stringify(dataPost);
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", dataPost.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
document.getElementById("show").innerHTML = http.responseText;
}
};
http.send(str_json);
}
window.onload = getItems("start");
列表.php:
<some html code>
<body>
<span id="show" ></span>
</body>
<some more code>
我正在尝试实现模型-视图-控制器模式,但我不知道如何将"get_data.php"文件中的"echo"传输到视图中。
请注意,list.php
文件中的 <span>
标记是显示更改文本的标记
我想你需要的只是通过这样的require_once()
将您的视图"包含"到您的控制器中:
get_data.php:
<?php
$str_json = file_get_contents('php://input');
$data = json_decode($str_json, true);
$token = $data['token'];
$request = $data['request'];
//echo "<p>" . $request . "</p>"; -- don't echo anything in the controller
require_once('item.php');
?>
项目.php:
<p>
<?php echo $request ?>
</p>
require_once()
将包含该文件,因此您的范围不会更改。