[英]Writing data to a server file using javascript + php
编辑:感谢您消除我对 PHP 和 Javascript 的困惑。 必须使用 AJAX。
我只是在尝试使用PHP/Javascript
对文件进行基本写入
我有一个像
<head>
<?php
function writeToFile($file, $data) {
file_put_contents($file, $data);
}
?>
<script>
function funct() {
<?php writeToFile('text.txt', 'hello'); ?>
}
window.onload = funct;
</script>
</head>
不幸的是, text.txt
是空的。 我错过了什么?
您将服务器端语言与客户端语言混淆了。
<?php
function writeToFile($file, $data) {
file_put_contents($file, $data);
}
writeToFile('text.txt', 'hello');
?>
以上将工作。
标签用于 javascript(在客户端工作 - 即在浏览器中)
要从网页用 PHP 调用脚本,您需要查看 AJAX - 但我首先要学习一些客户端与服务器端语言的知识 - 在点击之前它可能会令人困惑!
您应该使用 fopen 获取文件句柄,然后使用 fputs 写入该文件。 最重要的是,您不能只使用 javascript 来执行 php 命令。
它的工作原理如下:
用户从服务器请求一个 .php 文件。 服务器执行该文件中的 php 代码,并在脚本的其余部分将其输出为 HTML。 由于 Javascript 是在客户端执行的,所以 php 的东西已经由服务器完成了。 所以你的客户实际得到的是:
<head>
<script>
function funct() {
}
window.onload = funct;
</script>
</head>
如果想在用户输入的同时执行一些php函数,又不想重新加载页面,可以勾选ajax。 但是为了您的目的,我认为您应该阅读有关 fopen、fputs 等的信息。
http://www.php.net/manual/de/function.fopen.php http://www.php.net/manual/de/function.fputs.php
你不能像那样一起使用 PHP 和 javascript。 你应该使用 AJAX。 所以像这样重写funct()
:
function funct() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
alert('Writing completed!');
}
}
xmlhttp.open("GET", "script.php", true);
xmlhttp.send();
}
注意xmlhttp.open("GET", "script.php", true);
部分。 Yu 必须在您的服务器上创建一个名为 script.php 的新文件,并将您的脚本的 PHP 内容添加到其中( writeToFile()
函数,函数调用)
由于php和javascript 的执行不同,您的代码将无法运行。 php(服务器端)将首先执行,并将同时执行
<?php
function writeToFile($file, $data) {
file_put_contents($file, $data);
}
?>
和
<?php writeToFile('text.txt', 'hello'); ?>
从您的代码和 html 结果将被发送到客户端。 你猜怎么着 ? 将呈现给 javascript 的代码如下
<head>
<script>
function funct() {
}
window.onload = funct;
</script>
</head>
因此,如果文件text.txt
在客户端,那么您需要使用 ajax 来处理此问题。 这里有一个很好的 Ajax 介绍
祝你好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.