[英]How do I display an answer on a separate html page using javascript?
[英]How do I display the HTML GET request data on the same HTML page, using a separate PHP file to fetch it?
我正在尝试从 MySQL 数据库中获取数据,该数据库是从 HTML 文件的下拉列表中选择的,并将数据显示在从中选择的同一 HTML 页面上。 我已经使用 HTML 和 PHP 来检索数据并显示它,但它没有显示在用户请求它的同一页面上,而是显示在 PHP 页面上。
这是 get_project_form.html 的 HTML 代码:
<html>
<head>
<title>Get Project Form</title>
<!--Link this html page to the project_style.css page-->
<link rel="stylesheet" type="text/css" href="project_style.css">
</head>
<body>
<div class="container">
<form action="get_project_action.php" autocomplete="off" method="get">
<label for="Query Selections">Query Selections : (You can only select
all data from "Projects"
for now):</label>
<select id="first_query" name="queries" required>
<option value="" disabled selected>Make a Selection</option>
<option value="Projects">Projects</option>
</select><br />
<input type="submit" value="Submit"><br />
</div>
</body>
</html>
做出选择并单击提交后,数据将显示在带有 URL http://localhost:8015/get_project_action.php?queries=Projects 的页面上
这是 php 文件 get_project_action.php 的代码:
<?php
echo "<table style='border: solid 1px black;'>";
class TableRows extends RecursiveIteratorIterator
{
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width: 150px; border: 1px solid black;'>" .
parent::current() . "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "pmo";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username,
$password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $_GET["queries"];
$stmt = $conn->prepare("SELECT * FROM $query");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach (new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as
$k => $v) {
echo $v;
}
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
如果可能,我想将 HTML 和 PHP 分开。 但从我正在阅读的内容来看,我猜这是不可能的。 我听说最好将逻辑保留在单独的 PHP 文件中,但最好将执行显示的 PHP 的其余部分放在 HTML 文件中,并将 .html 文件改为 .php。 但我希望有一种方法可以将数据显示在表单下方的 get_project_form.html 页面中,而无需在 get_project_form.html 文件中组合任何 PHP 并将其更改为 .php。 如果这是可能的,请告诉我如何。 如果没有,请随时向我展示如何做任何被认为是在网页上显示数据的良好做法。 任何帮助将不胜感激!
假设在 php 文件中,您使用 $dropdownData 数组变量来存储来自 db 的数据。
//PHP file
<?php
//query to fetch data from db.
$dropdownData;
$this->view('get_project_form.html',$dropdownData);
?>
//然后在你的 HTML 文件中使用这个数组变量 $dropdownData 用 "for loop" 来显示 //HTML 文件 //如果 $dropdownData 不为空,你也可以验证它; 否则 php 会报错。
<select id="first_query" name="queries" required>
<option value="" disabled selected>Make a Selection</option>
<? foreach ($dropdownData as $val => $text) { ?>
<option value="<? echo $val; ?>" > <? echo $text;?> </option>
<? } ?>
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.