我正在尝试使用查找偶数/奇数的示例来实现以下架构。我使用客户端作为HTML文件和Web服务器作为PHP。
[“FindEO.html”] - HTML文件如下所示:
<!DOCTYPE html>
<html>
<body>
<h3>Check Even/ODD Number</h3>
<form method="get" action="http://192.168.0.103:81/DUNNO/eo.php">
Enter number: <input type="text" name="fname">
<input type="submit">
</form>
</body>
</html>
[“EO.php”] - PHP文件如下:
<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
$name = $_GET['fname'];
$num = (int)$name;
if (($num%2)==0) {
echo "$name is Even";
} else {
echo "$name is Odd!";
}
}
?>
执行HTML文件时,它要求输入为:
单击提交按钮后。将显示PHP页面,而不是显示HTML文件中PHP页面的内容。
[目前显示(PHP文件):]
[它应该在HTML文件中显示PHP内容]
因此,请求从HTML文件发送到PHP服务器,而不是从PHP文件到HTML文件的响应,它直接显示PHP文件本身。
1)这是否可以显示预期的输出。 (PHP处理HTML文件中的输出)?
2)假设我将当前的PHP代码存储在以下函数中:
<?php
function findeo($num){
if (($num%2)==0) {
echo "$name is Even";
} else {
echo "$name is Odd!";
}
}
if ($_SERVER["REQUEST_METHOD"] == "GET") {
$name = $_GET['fname'];
$num = (int)$name;
findeo($num);
}
?>
那么如何将参数(10或任何数字传递给$ num变量)并调用HTML文件中的PHP页面的findeo()函数?
有人请帮我实现客户端 - 服务器架构,或告诉我是否有任何其他方式,这种架构可以使用HTML作为客户端和PHP作为服务器。
PHP无法在将页面内容提供给浏览器后对其进行修改。然而,对于像jQuery这样的JavaScript库,这将是微不足道的。或者使用AJAX调用php脚本来更新元素。 StackOverFlow上有一些例子:Change DIV content using ajax, php and jQuery
使用javascript将表单发送到php文件并检索答案。这是我将如何做到这一点:
function getAnswer(e) {
e.preventDefault();
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://192.168.0.103:81/DUNNO/eo.php', true);
xhr.responseType = 'text';
xhr.onload = function () {
if (xhr.readyState === xhr.DONE) {
if (xhr.status === 200) {
document.getElementById('answer').textContent = xhr.response;
}
}
};
xhr.onerror = function() {
document.getElementById('answer').textContent = "Error...";
}
xhr.send(null);
}
<!DOCTYPE html>
<html>
<body>
<h3>Check Even/ODD Number</h3>
<form method="get" onsubmit="getAnswer(event)">
Enter number: <input type="text" name="fname">
<input type="submit">
</form>
<div id="answer"></div>
</body>
</html>
使用preventDefault()将阻止页面尝试提交表单,并允许javascript自己执行请求。另外,我在你的HTML中添加了一个div,它将保存你的PHP文件给出的响应。