我正在尝试使用 javascript 和 php 制作“另存为”功能。在我使用的html中:
<textarea id="filename" cols="20" rows="1"></textarea>
<li class ="add" onclick="js:saveas()" >save</li>
然后使用内联 javascript 我这样做是为了获取文件名和动态生成的 dom:
<script>
function saveas() {
$.post('write.php', { name : $('#filename').val() });
$.post('write.php', { dom : $('html').html() });
}
</script>
然后在“write.php”中...
<?php
$name = urldecode($_POST['name']);
$dom = urldecode($_POST['dom']);
file_put_contents($name, $dom);
?>
但是控制台说:
[30-Aug-2012 15:45:22] PHP Notice: Undefined index: dom in /Users/J/Documents/test7/test7/write.php on line 3
[30-Aug-2012 15:45:22] PHP Notice: Undefined index: name in /Users/J/Documents/test7/test7/write.php on line 2
[30-Aug-2012 15:45:22] PHP Warning: file_put_contents() [<a href='function.file-put-contents'>function.file-put-contents</a>]: Filename cannot be empty in /Users/J/Documents/test7/test7/write.php on line 4
它使用正确的名称创建文件,但它是空的,零字节。但是,如果我对文件名进行硬编码,如下所示:
file_put_contents('foo.html', $dom);
尽管我仍然收到通知,但一切都按应有的方式进行。关于我做错了什么的任何想法?