【发布时间】:2014-07-22 01:03:00
【问题描述】:
一个朋友问了我一个问题,老实说,我这辈子都想不出一个肯定的答案。所以我把它摆给你;
如果我有 2 个文档(page.html 和 form.php),并且我在 page.html 中包含了 form.php:
<html>
<head>
<title>Home</title>
<?php include 'form.php'; ?>
</head>
<body>
<form>
<FORM CONTENT HERE>
</form>
<div class="results">
<p><?php echo $result_variable ?></p>
</div>
</body>
<script>
!-- Ajax function here, POSTs to form.php
</script>
</html>
它有一个 AJAX 表单,POSTing to form.php,以及一个用于打印 PHP 变量 $result_variable 的结果字段。
现在,如果我的 PHP 页面采用发布的数据,在初始文档加载/包含完成后 - 然后更改 $result_variable 的值作为结果 - 将在 page.html 中更新 $result_variable 的值而不页面重新加载?
例如 - 如果 form.php 看起来像这样;
<?php
$result_variable = 1;
if (!empty($_POST)){
$result_variable = 2;
}
?>
在初始页面加载后(不提交表单),$result_variable 应该是 1。虽然在 ajax 表单提交完成后,$result_variable 已更改为 2。这会在不重新加载 page.html 的情况下反映吗?
谢谢。
【问题讨论】:
-
如果您的 AJAX 请求的 Javascript 响应处理程序将响应文本设置为您的
$result_variable的<p>标记,则会这样做。如果这就是您的要求,它不会神奇地发生。 -
谢谢,这正是我想要的。您是否有任何关于如何以类似方式处理 AJAX 请求以完成上述任务的读物?
-
不幸的是,绝大多数示例都是jQuery。但是在页面中,您将使用(唯一的)
id,例如<p id='destination'...,然后在响应处理程序中设置document.getElementById('destination').textContent = response;,response是脚本返回的内容。 -
这是现场直播jQuery form submit example。 jQuery 确实让 Ajax 变得简单得多,但我仍然建议您尝试使用原生方法,以便您知道它在做什么。
-
完美。干杯,这非常有帮助!
标签: javascript php html ajax