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);
私はまだ通知を受け取りますが、すべてが正常に機能します。私が間違っていることについてのアイデアはありますか?