您的代码被分成两个完全独立的部分,即 服务器端 和 客户端 .
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
双方通过 HTTP 请求和响应进行通信。PHP 在服务器上执行并输出一些 HTML 和 JavaScript 代码,这些代码作为响应发送到客户端,在客户端解释 HTML 并执行 JavaScript。一旦 PHP 完成响应输出,脚本就会结束,服务器上不会发生任何事情,直到有新的 HTTP 请求进入。
示例代码执行如下:
<script type="text/javascript">
var foo = 'bar';
<?php
file_put_contents('foo.txt', ' + foo + ');
?>
var baz = <?php echo 42; ?>;
alert(baz);
</script>
第 1 步,PHP 执行 <?php ?>
标签之间的所有代码。结果是这样的:
<script type="text/javascript">
var foo = 'bar';
var baz = 42;
alert(baz);
</script>
该 file_put_contents
调用没有产生任何结果,它只是将 \' + foo + \' 写入文件。该 <?php echo 42; ?>
调用导致输出 \'42\',现在位于该代码曾经所在的位置。
生成的 HTML/JavaScript 代码现在被发送到客户端,在那里进行评估。调用 alert
成功,但 foo
变量没有在任何地方使用。
所有 PHP 代码都在服务器上执行,甚至在客户端开始执行任何 JavaScript 之前。响应中已没有任何 PHP 代码可供 JavaScript 交互。
要调用某些 PHP 代码,客户端必须向服务器发送新的 HTTP 请求。这可以使用以下三种可能的方法之一来实现:
-
一个链接,导致浏览器加载一个新页面。
-
表单提交,将数据提交到服务器并加载新页面。
-
请求 AJAX ,这是一种 Javascript 技术,用于向服务器发出常规 HTTP 请求(如 1. 和 2. 一样),但无需离开当前页面。
这是一个更详细地概述这些方法的问题
您还可以使用 JavaScript 使浏览器打开新页面 window.location
或提交表单,模拟可能性 1. 和 2。