显示数据库查询结果
Posted
技术标签:
【中文标题】显示数据库查询结果【英文标题】:Displaying Database Query Results 【发布时间】:2013-07-15 08:22:17 【问题描述】:假设我有一个表格。提交表单后,数据将提交到dataprocess.php
文件。
dataprocess.php
文件处理通过表单发送的变量并回显所需的输出。
仅使用 PHP(不使用 AJAX/javascript)似乎不可能回显到指定页面中的指定 div
。我不想使用这些,因为某些浏览器可能禁用了这些。
我担心的是我想保持包含表单元素的页面的相同格式。我希望表单元素也在那里。我希望查询结果显示在表单下方。
我可以通过一些修改来回显精确的 html 代码,但这会占用大量内存,我希望它系统化。
是否可以在同一页面内处理表单?而不是要求另一个 .php 文件来处理它?如何实现它?
以上内容仅供参考。将 PHP 脚本包含在同一个 HTML 文件中会很长而且很混乱。此外,如果我有多个表单使用相同的 process.php
文件,该方法可能效率不高。
我实际上是在寻找有效的方法。 Web 开发人员如何在同一页面中显示查询结果?回显所有的 html 格式吗?另外,禁用 JavaScript 是否会禁用 jQuery/AJAX?
【问题讨论】:
禁用 javascript 会禁用 ajax/jquery,因为它们是 Javascript 的扩展。 【参考方案1】:是的,可以在同一页面上处理表单。
<?php
if (isset($POST))
//write your insert query
?>
<html>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<!-- Your form elements and submit button -->
</form>
<table>
<?php
//your select query in a while loop
?>
</table>
</body>
</html>
但是如果您选择这种技术而不是 ajax,您必须为每个插入操作刷新所有页面。
一个例子
<div id="dialog-form">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<table>
<tr>
<td>Job</td>
<td>
<input type="text" name="job" />
</td>
</tr
</table>
<input type="submit" value="Insert" />
</fieldset>
<input type="hidden" name="doProcess" value="Yes" />
</form>
</div>
<?php
$myQuery= $db->prepare("INSERT INTO Jobs (job) VALUES (:p1)");
if (isset($_POST['doProcess']) && $_POST['doProcess'] == 'Yes')
$myQuery->bindValue(":p1", $_POST['job'], PDO::PARAM_STR);
$myQuery->execute();
?>
【讨论】:
在表单中我有 action="process.php"。我是否输入相同的原始文件名,例如action="databasesearch.php"? @user2178841 是的,正如你所说的【参考方案2】:如果你真的不想使用 ajax(我认为你应该这样做)。你可以这样做。
<form action="" method="POST">
<input type="text" value="something" name="something_name"/>
<?php
if(isset($_POST['something_name']))
echo '<div id="display_something_name_if_exists">';
echo $_POST['something_name'];
echo '</div>';
?>
</form>
基本上它所做的就是提交给自己,然后如果有提交(用 isset 测试),它会回显一个带有正确信息的 div。
【讨论】:
以上是关于显示数据库查询结果的主要内容,如果未能解决你的问题,请参考以下文章