如何在HTML页面中检索PHP页面的内容?

问题描述 投票:1回答:2

我正在尝试使用查找偶数/奇数的示例来实现以下架构。我使用客户端作为HTML文件和Web服务器作为PHP。

Simple HTTP Request enter image description here

[“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文件时,它要求输入为:

enter image description here

单击提交按钮后。将显示PHP页面,而不是显示HTML文件中PHP页面的内容。

[目前显示(PHP文件):]

enter image description here

[它应该在HTML文件中显示PHP内容]

enter image description here

因此,请求从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 html html5 client-server
2个回答
0
投票

PHP无法在将页面内容提供给浏览器后对其进行修改。然而,对于像jQuery这样的JavaScript库,这将是微不足道的。或者使用AJAX调用php脚本来更新元素。 StackOverFlow上有一些例子:Change DIV content using ajax, php and jQuery


1
投票

使用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文件给出的响应。

© www.soinside.com 2019 - 2024. All rights reserved.