假设我有一张表格。提交表单后,数据将提交到dataprocess.php
文件。
dataprocess.php
文件处理通过表单发送的变量,并回显理想的输出。
似乎不可能仅使用PHP(不使用AJAX / JavaScript)回显指定页面中的指定div
。我不想使用这些,因为某些浏览器可能会禁用这些。
我担心的是我想保持包含表单元素的页面的相同格式。我希望表单元素也在那里。我希望查询结果显示在表单下方。
我可以通过一些修改来回显确切的html代码但是内存很昂贵而且我希望它是系统化的。
是否可以在同一页面内处理表单?而不是要求另一个.php文件来处理它?如何实现它?
以上仅供参考。将PHP脚本包含在同一HTML文件中将是漫长而混乱的。此外,如果我有多个表单使用相同的process.php
文件,那么该方法可能效率不高。
我实际上在寻找有效的方法。 Web开发人员如何在同一页面中显示查询结果?回显所有html格式?是吗,禁用JavaScript会禁用jQuery / AJAX吗?
答案 0 :(得分: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();
}
?>
答案 1 :(得分:1)
如果你真的不想使用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。