2016-05-11 14 views
0

私はAJAXを使い慣れていないので、私は慣れ親しんでいます。同じディレクトリにajaxを使ってファイルに書き込む

<html> 
<script type="text/javascript" src="jquery-1.12.3.min.js"></script> 

<script> 
    function write(){ 
     $.ajax({ 
     type: 'POST', 
     url: "write.php", 
     data: "something", 
     success: function(result) { 
      alert('the data was successfully sent to the server'); 
     } 
     }) 
    } 
</script> 

Click to write some stuff 
<a href="javascript:write()" class="write">Write</a> 
</html> 

および関連write.phpファイル:

<?php 
error_reporting(E_ALL); 
$data = $_POST['data']; 
$f = fopen('file.txt', 'w+'); 
fwrite($f, $data); 
fclose($f); 
?> 

私はリンクをクリックすると、私は成功のメッセージが表示されますが、ファイルが作成されていない私は、htmlページを持っていますサーバー上で何を調査すべきかわからない。私はディレクトリへの書き込みアクセスを持っていることを確認しました

+0

http://php.net/manual/en/function.error-reporting.phpそしてあなたのコンソールを見てください –

+0

は、error_reporting行をPHPに追加しました。 –

+0

が 'ini_set( 'display_errors'、1);'を追加しました。 –

答えて

3

あなたがjQueryを使うつもりなら、それはのすべてを使ってみてください。まず、リンクにインラインJavaScriptが含まれていないようにしてください。

<a href="#" class="write">Write</a> 

クリックすると、あなたがそのクラスによって、あなたのメインのjQueryコードであなたのリンクイベントのクリックをキャプチャ(とクリックのデフォルトの動作を停止する):

<script> 
    $(document).on('click', '.write', function(event) { 
     event.preventDefault(); 

あなたは何を送信していません$_POST配列にはキーと値のペアが必要であるとPHPスクリプトに送信していると考えてください。

 $.ajax({ 
     type: 'POST', 
     url: "write.php", 
     data: {something: 'foo'}, // key value pair created, 'something' is the key, 'foo' is the value 

Don't use alert() for troubleshooting.、代わりにconsole.log()を使用:データのキー/値のペア(複数可)を作成します。あなたがデータを送信するとき

  success: function(result) { 
       console.log('the data was successfully sent to the server'); 
      } 
     }); 
    }); 
</script> 

さて、あなたは$_POST['something']で何かを持っています:

<?php 
    error_reporting(E_ALL); 
    $data = $_POST['something']; // the key we sent was "something" 
    $f = fopen('file.txt', 'w+'); 
    fwrite($f, $data); 
    fclose($f); 
?> 

あなたが実際にどのできるPHPスクリプトに何かを送ってきたので、今すぐテキストファイルは「foo」を含める必要があります解析される。あなたがしなければならないもう一つのことは、PHPスクリプトがあなたのサーバ上のファイルを開いたり書いたりする権限を持っていることを確認することだけです。

関連する問題