0

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

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

4

3 回答 3

1

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

于 2013-01-11T23:05:12.777 回答
1

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

很好地概述了服务器和浏览器的通信方式:浏览器和 Web 服务器之间的通信是如何发生的?

表单提交的基础知识: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 Ajax 与 PHP:http ://www.switchonthecode.com/tutorials/simple-ajax-php-and-javascript

于 2013-01-11T23:14:00.463 回答
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当您单击带有 id 的按钮时,这会将分数传递给 PHP 程序saveScoreButton。然后 PHP 程序必须使用$_GET["score"].

请注意,如果用户了解 javascript 并查看发生了什么,这将很容易被用户欺骗。他们可以在浏览器的地址栏中输入“savescore.php?score=100”。如果您想要一个安全的解决方案,javascript 应该只将用户的答案传递给 PHP 程序,然后 PHP 程序会标记测试并汇总结果。

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

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

然后在 PHP 程序中使用$_POST["score"].

如评论中所述,如果您想比较/制表分数,则savescore.php需要将值存储在数据库或文件中,以便可以通过admin.php.

于 2013-01-11T23:33:14.667 回答