我有一个名为 functions.js 的文件,其中有计算学生考试分数的函数总和。我希望将该总和打印到文件 admin.php 中的表格中,以便管理员查看每个学生的所有分数。
那么如何将 sum 变量传递给另一个文件呢?我尝试使用 onlick 操作调用该函数,但这不起作用
我有一个名为 functions.js 的文件,其中有计算学生考试分数的函数总和。我希望将该总和打印到文件 admin.php 中的表格中,以便管理员查看每个学生的所有分数。
那么如何将 sum 变量传递给另一个文件呢?我尝试使用 onlick 操作调用该函数,但这不起作用
Javascript 在客户端运行,PHP 在服务器端运行。因此,您必须在 javascript 中编写一些代码来更改 PHP 脚本返回的 HTML 页面,并显示结果。
一旦您的所有文件都加载到客户端上,就没有单独的 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
我猜你可能想要这样的东西
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
.