将值从一个文件传递到另一个javascript

时间:2013-01-11 23:03:35

标签: javascript

我有一个名为functions.js的文件,其中我有一个函数和,用于计算学生在考试时所得的分数。我希望将该金额打印到admin.php文件中的表格中,以便管理员查看每个学生的所有分数。

那么如何将sum变量传递给另一个文件呢?我尝试使用onlick操作调用该函数但不起作用

3 个答案:

答案 0 :(得分:1)

Javascript是客户端运行的,PHP是服务器端运行的。因此,您必须在javascript中编写代码,以改变PHP脚本返回的HTML页面,并显示结果。

答案 1 :(得分:1)

一旦您的所有文件都加载到客户端上,就没有单独的js文件的概念。客户端(浏览器+ javascript)和服务器(php)是2个独立的实体。当您的数据是一个地方时,另一个人不知道它是否存在。研究ajax作为在两个位置之间进行通信的方法,或者使用表单并将页面提交给服务器。

很好地概述了服务器和浏览器的通信方式:How does the communication between a browser and a web server take place?

表单提交的基础知识:http://www.htmlgoodies.com/tutorials/forms/article.php/3479121/So-You-Want-A-Form-Huh.htm

Ajax基础知识:http://webdesign.about.com/od/ajax/a/aa101705.htm 使用PHP的Ajax:http://www.switchonthecode.com/tutorials/simple-ajax-php-and-javascript

答案 2 :(得分:1)

我想你可能想要这样的东西

document.getElementById('saveScoreButton').onclick = {
  var r = new XMLHttpRequest,
    message = document.getElementById('message'),
    score = sum();
  message.innerHTML = 'Saving your score; please wait a second';
  r.open('get', 'savescore.php?score=' + score, true);
  r.send(null);
  r.onreadystatechange = function () {
    if (r.readyState == 4 && r.status == 200) {
      message.innerHTML = 'Saved your score';
    }
  }
}

当您单击标识为savescore.php的按钮时,会将得分传递给PHP程序saveScoreButton。然后,PHP程序必须使用$_GET["score"]检索它。

请注意,如果用户理解javascript并查看正在发生的事情,这将很容易被欺骗。他们只需在浏览器的地址栏中键入“savescore.php?score = 100”即可。如果你想要一个安全的解决方案,javascript应该只传递用户对PHP程序的答案,然后标记测试并对结果求和。

也可以使用POST方法而不是GET来传递值:

  ...
  r.open('post', 'savescore.php?score=' + score, true);
  r.send('score=' + score);
  ...

然后使用$_POST["score"]在PHP程序中选择它。

如评论中所述,如果您想比较/制表分数,那么savescore.php将需要将值存储在数据库或文件中,以便admin.php可以检索它们。