PHP和Javascript交互

时间:2012-02-28 22:30:27

标签: php

我需要澄清一些事情:

我有一个网站,每次在浏览器中重新加载网站时都会更新两个变量的值。这个页面显然是一个HTML页面,但变量是由javascript函数更新的。此页面在我的服务器上运行。

PHP可以检索这些变量的值,并使用它们将它们写入txt文件或XML文件吗?我意识到javascript是一种浏览器端语言,PHP是服务器端语言,但我不知道这两种语言在这种情况下是如何正确关联的。

此外,我没有选择将JavaScript代码重新创建为PHP脚本。

我想做的是什么?

由于

8 个答案:

答案 0 :(得分:3)

我不确定变量何时更新(如果在生成页面时更新它们,那么为什么不用仅使用PHP进行更新?)。但是如果它们在客户端更新,基于用户的某些操作,那么只需执行以下操作:

  1. 更新JS变量后,向服务器发出AJAX调用,发送数据
  2. 在服务器端,根据发送的数据使用PHP生成TXT或XML文件
  3. 第1次可以使用例如。 jQuery's .post() method,第二个可以通过从被调用的PHP脚本(使用AJAX发送数据的脚本)中读取$_POST变量,并将其输出到TXT文件(例如,使用PHP's fwrite() function)。

    编辑:关于AJAX有很好的参考。请参阅Mozilla Developer Network article on Asynchronous JavaScript + XML (AJAX)

答案 1 :(得分:3)

你想要AJAX。这是一个很好的介绍,如果你按照下一章,它给你一个PHP的例子:

http://www.w3schools.com/php/php_ajax_intro.asp

答案 2 :(得分:2)

当PHP脚本运行时,变量尚未设置,因此无法正常工作。一旦javascript脚本函数获得所需的值,您就可以执行AJAX调用,并将值发送到.php脚本以运行

答案 3 :(得分:1)

AJAX就是答案。您可以直接使用XMLHttpRequest对象,也可以使用jQuery等库来处理请求。然后,您可以使用HTTP-POST-Request将数据发送到您的服务器,在这种情况下您的PHP脚本然后将它收到的值保存在$ _POST数组中。

使用jQuery,可以这样做:

var data = {foo: 'bar', lorem: 'ipsum'};
$.post('http://example.com/save.php', data);

答案 4 :(得分:1)

SLaks是对的。你想看看ajax。最简单的方法是包含最新的jquery库,然后在加载时将变量发送到php脚本。

Latest jQuery 1.x library

jQuery ajax documentation

PHP fwrite documentation

PHP fwrite docs将解释如何写入平面文本文件。

希望它有所帮助。如果您需要澄清,请告诉我们。

答案 5 :(得分:0)

PHP和JS不会互相交谈。他们有一个中介......即HTML页面。

PHP - >生成HTML - >发送到浏览器 - >渲染 - > JS与html交互 - >发回 - > PHP与服务器响应交互

答案 6 :(得分:0)

使用javascript检索这些变量值,然后使用AJAX(以json格式)将它们发送到您的php脚本,然后您的php代码可以检索这些变量并将它们写入文件。

有关示例,请参阅this

答案 7 :(得分:0)

javascript和php可以用上面提到的方式相互关联: 从php到javascript的1_send数组

<script type="text/javascript">
<?php
  $myVar = array('a' , 'b' , 'c');
?>
   console.log(<?php echo json_encode($myVar); ?>);

</script>

2_发送和json文件从php到javascript。 (可能是ajax电话) 3_从php发送xml文件到javascript。 (当然是首选的json) 4_使用带有REST API的javascript来读取文件或数据库或...哪个数据库与它们有一些关系。

也许还有其他一些方法。

取决于您需要使用哪一个。