如何在 HTML 页面中显示来自单独 PHP 文件的结果?
Posted
技术标签:
【中文标题】如何在 HTML 页面中显示来自单独 PHP 文件的结果?【英文标题】:How to display the results from a separate PHP file in an HTML page? 【发布时间】:2017-12-01 06:56:00 【问题描述】:我需要在 html 表单页面本身中显示总和。我的 php 文件中给出了部分代码:
<?php
while($row = mysqli_fetch_array($search_result)):?>
<?php
$sum=$sum+$row['value'];
?>
<tr>
<td><?php echo $row['id'];?></td>
<td><?php echo $row['time'];?></td>
<td><?php echo $row['value'];?></td>
</tr>
<?php endwhile;?>
在我的 HTML 表单中,我有一个 total
按钮。当我单击它时,我需要显示总和值。我该怎么做?
<form action="php_html_table_data_filter3.php" method="post">
From:<input type="text" name="valueToSearch1"><br><br>
To:<input type="text" name="valueToSearch2"><br><br>
<input type="submit" name="search" value="Filter"><br><br>
<button type="button">Total</button><br><br>
</form>
【问题讨论】:
.html 和 .php 文件是分开的吗? @pAsh 文件是分开的 为隐藏字段赋值。单击“总计”按钮后,从隐藏字段中获取值并显示在您想要的任何位置。 另一种更安全的方法是使用 AJAX。在服务器端存储总和。一旦点击“总计”按钮进行 ajax 调用并将 ajax 响应显示为总和。 表格行<tr>
怎么样?你是如何使用这些的?他们是否也需要出现在结果中?
【参考方案1】:
我假设你想显示总数,如果它是正确的,那么按照下面的方法
$sum = 0;
while($row = mysqli_fetch_array($search_result)):?>
$sum+= $row['value'];
<?php endwhile;?>
echo $sum;
或
如果您想在不重新加载页面的情况下显示结果。您必须在 ajax 请求中编码。
【讨论】:
但我想在同一个表单页面上显示它 那么你必须使用 jquery 编写 onclick ajax 请求。【参考方案2】:我们在 html 页面中使用 ajax 来访问 php 页面中的内容:
HTML:
<html>
<script src="jquery.min.js"></script> // script download
<form action="php_html_table_data_filter3.php" method="post">
From:<input type="text" name="valueToSearch1"><br><br>
To:<input type="text" name="valueToSearch2"><br><br>
<input type="submit" name="search" value="Filter"><br><br>
<button type="button" id="total">Total</button><br><br>
Your sum:<span id="sum"></span>
</form>
</html>
<script>
$( "#total" ).click(function()
$.ajax(
url : "phptest.php",
type: "POST",
success: function(data)
$('#sum').html(data);
);
);
</script>
PHP: here your php code
<?php
echo "10";
?>
【讨论】:
【参考方案3】:您需要使用PHP SESSIONs,并使用您在 POST 请求中发送的信息。基本上,两个按钮都需要属于 submit 类型,以便它们都将请求发送到进程 (process.php)。然后你可以使用会话来设置你的结果。
以这种方式进行:
index.php
<?php session_start(); ?>
<form action="process.php" method="post">
From:<input type="text" name="valueToSearch1"><br><br>
To:<input type="text" name="valueToSearch2"><br><br>
<input type="submit" name="search" value="Filter"><br><br>
<button name="total_btn" type="submit">Total</button>
</form>
<div id="results">
<?= (!empty($_SESSION["table"])) ? $_SESSION["table"] : "" ?>
<br>
<?= (!empty($_SESSION["sum"])) ? "Sum: " . $_SESSION["sum"] : "" ?>
</div>
<?php
session_destroy();
process.php
<?php
session_start();
$sum = 0;
$table = "<table>";
while ($row = mysqli_fetch_array($search_result))
$sum += $row['value'];
$table .= "<tr>
<td>$row['id']</td>
<td>$row['time']</td>
<td>$row['value']</td>
</tr>";
$table .= "</table>";
if (isset($_POST['total_btn']))
$_SESSION["sum"] = $sum;
$_SESSION["table"] = $table;
header('Location: index.php');
【讨论】:
【参考方案4】:如果我正确理解了您的问题,那么您需要 Ajax 调用。 GET 或 POST 基于您的偏好。您的 HTML 代码将与 php 代码分开,基本上 php 代码将响应 Ajax 调用并给您输出。
修改后的代码 - Test.html
<form action="php_html_table_data_filter3.php" method="post">
From:<input type="text" name="valueToSearch1"><br><br>
To:<input type="text" name="valueToSearch2"><br><br>
<input type="submit" name="search" value="Filter"><br><br>
<button type="button" id="gettotal">Total</button><br><br>
</form>
<script>
$("#gettotal").click(function(e)
e.preventDefault();
$.ajax(
type: 'GET',//based on your choice or requirement
url: 'calculate.php',
success: function(response)
//here u decide where to show output value
alert(response);
,
error: function(result)
alert('error');
);
);
</script>
calculate.php
<?php
$sum = 0;
while($row = mysqli_fetch_array($search_result))
//calculate your total and send back as JSON obj.
$sum=$sum+$row['value'];
echo json_encode($sum);
?>
【讨论】:
总和显示在下一页以上是关于如何在 HTML 页面中显示来自单独 PHP 文件的结果?的主要内容,如果未能解决你的问题,请参考以下文章