用php和javascript写一个文件

时间:2015-08-19 15:11:10

标签: javascript php html ajax

所以我想在我的HTML页面上使用按钮来调用将写入文本文件的php程序。我目前得到的是来自我的Ajax函数的成功包,但它应该写的文件不存在。

我的HTML

<button type = "button" onclick = "getRequest('changeState.php', changeState('1'), 0)"></button>

我的Javascript函数:

function getRequest(url, success, error) {
var req = false;
try{
    // most browsers
    req = new XMLHttpRequest();
} 
catch (e){
    // IE
    try{
        req = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch(e) {
        // try an older version
        try{
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch(e) {
            return false;
        }
    }
}
    if (!req) return false;
    if (typeof success != 'function') success = function () {};
    if (typeof error!= 'function') error = function () {};
    req.onreadystatechange = function()
    {
        if(req.readyState == 4) {
            return req.status === 200 ? 
            success(req.responseText) : error(req.status);
        }
    }
    req.open("GET", url, true);
    req.send(null);
    return req;
}

function changeState(input)
{    
    state = input;
    document.GetElementById("state_current").innerHTML = state;
}

我的PHP文件:

<?php
    $f = fopen("file.txt");
    fwrite($f, "Hello World");
    fclose($f);
?>

我说实话,我对php很新,但我的语法似乎很好,因为我没有删除任何错误消息,我知道程序运行成功,因为我得到了成功运行的功能。我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:0)

成功时不会调用changeState函数,因为您传递的是changeState函数返回的值而不是函数引用,应该是:

<button type = "button" onclick = "getRequest('changeState.php', changeState, 0)"></button>

您还可以在开发人员工具上的“网络”选项卡上查看您是否确实将请求发送到了URL。如果您没有,那么您的网址或服务器就会出现问题。

答案 1 :(得分:0)

如果直接调用PHP脚本,则应创建

file.txt。如果不是,可能不允许PHP创建它。不幸的是,用户运行PHP并不容易理解,并且该用户必须有权写入服务器的webroot文件夹。据我所知,这取决于PHP的执行方式(模块与CGI)。

我会尝试将文件夹访问权限更改为&#34; 777&#34; (任何人都可以做任何事情)。