我有一个名为functions.js的文件,其中我有一个函数和,用于计算学生在考试时所得的分数。我希望将该金额打印到admin.php文件中的表格中,以便管理员查看每个学生的所有分数。
那么如何将sum变量传递给另一个文件呢?我尝试使用onlick操作调用该函数但不起作用
答案 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
可以检索它们。