我正在尝试更改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包含一个逗号“;”
,我仍有问题答案 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 );
}
});
});