php fwrite - 变量;不会更改文件

时间:2012-02-21 10:40:04

标签: php jquery ajax fwrite

我正在尝试更改javascript文件而无需通过ftp连接。因此我使用textarea,在其中填写代码,提交,然后文本框的内容保存到服务器上的文件(此处称为ender.js)。

这是我的html,javascript和php(我正在使用jquery)

HTML:

<form>
    <textarea id="result" rows="50" cols="150"></textarea> 
    <input id="submit_btn" type="submit" value="Submit"/>
    </form>

的javascript:

$('#submit_btn').click(function() {
        //alert("Handler for .click() called.");
        $.ajax({
          type: 'POST',
          url: 'opener.php',
          data: {test: $('#result').val()},
          success: function() {
            $('#result').load('js/ender.js');
            alert('Load was performed.');
          },
          error: function() {
            alert('error in: ' + settings.url + ' \n'+'error:\n' + xhr.responseText );
          }

        });
    });

PHP:

<?php
    //echo $_POST['test'];
    $fp = fopen('js/ender.js', 'w');
    fwrite($fp, $_POST['test']);
    fclose($fp);
?>

如果textarea包含; (点 - 逗号)文件不会改变。那是为什么?

* 编辑*

错误发生在javascript文件中。

data: {test: $('#result').val()},

应该是

data: {'test': $('#result').val()},

但是如果textarea包含一个逗号“;”

,我仍有问题

2 个答案:

答案 0 :(得分:2)

这很乖,因为它已缓存在您的浏览器中。我有类似的问题。尝试使用随机名称或js/ender.js?rnd=123123

等参数更改文件名

答案 1 :(得分:0)

IMO:这是一种更好的方法:

<form id="myform" name="myform">
    <textarea name="result" id="result" rows="50" cols="150"></textarea> 
    <input id="submit_btn" type="submit" value="Submit"/>
</form>

$('#submit_btn').click(function() {
    $.ajax({
      type: 'POST',
      url: 'opener.php',
      data: $('#myform').serialize(),
      success: function() {
        $('#result').load('js/ender.js');
        alert('Load was performed.');
      },
      error: function() {
        alert('error in: ' + settings.url + ' \n'+'error:\n' + xhr.responseText );
      }

    });
});