jquery $.post() を使用して PHP スクリプトに情報を渡し、その情報をテキスト ファイルに書き込もうとしています。投稿はうまく機能しています。私が知る限り、エラーはスローされません...しかし、ファイルは作成されず、ファイルをそこに置いても書き込まれません。何か不足していますか?これが私のコードです。
JavaScript
var ajaxData = { IGC: JSON.stringify(containerObj), filename: newFilePath };
$.post( "../php/generateIGC.php", ajaxData, function(data) {
$('#generated_textarea').val(data)
})
もともと、送信されているものを解釈してファイルに書き込もうとしました。
PHP
<?php
$data = json_decode(stripslashes($_POST['IGC']), true);
$myFile = $_POST['filename'];
$handle = fopen($myFile, 'w'); //or die('Cannot open file: '.$myFile);
fwrite($handle,$data);
fclose($handle);
echo "File successfully created";
?>
それから私はあきらめて、テスト用に作成したファイルに書き込もうとしましたが、これでもうまくいきません。
<?php
$data = 'dfjlsdkfsdlfkj';
$handle = fopen('test.txt', 'w'); //or die('Cannot open file: '.$myFile);
fwrite($handle,$data);
fclose($handle);
?>
ブラウザーにエラーは表示されず、投稿は成功します。何かが機能していないことを示す唯一の兆候は、ファイルが書き込まれていないか作成されていないことです。(データ) にアクセスすると、php スクリプトの文字列が取得されます。ここで何が間違っていますか?
アップデート:
PHPスクリプトをこれに変更しました
<?php
$data = json_decode(stripslashes($_POST['IGC']), true);
$myFile = $_POST['filename']
$handle = fopen('test.txt', 'w') or die('Cannot open file: '.$myFile);
fwrite($handle,$data);
fclose($handle);
return $data;
?>
そして今、私はエラーを受け取ります:
kCFErrorDomainCFNetwork エラー 1.)
それが役立つ場合は、ここに投稿機能があります
function genCode() {
var path = $('#path_to_image').val();
var index = path.length
for (var i = 1; i<=3; i++) {
index = path.lastIndexOf('/',index-1)
}
var fileToCreate = path.substring(path.lastIndexOf('/')+1,path.lastIndexOf('.'))+'.igc'
var newFilePath = path.substring(0,path.lastIndexOf('.'))+'.igc'
containerObj["target_container"] = $('#target_container').val();
containerObj["img_path"] = path.substring(index+1);
containerObj["img_dims"] = {x: w, y: h};
containerObj["mode"] = $('#number_of_axes').val();
containerObj["sd"] = {x1: $('#sd_x1').val(), y1: $('#sd_y1').val(), x2: $('#sd_x2').val(), y2: $('#sd_y2').val()};
containerObj["number_of_graphs"] = $('#number_of_graphs').val();
var show_waypoints = false;
containerObj["show_waypoints"] = false;
//$('#generated_textarea').val("attachGraph.addGraph(" + JSON.stringify(containerObj, null, '\t') + ");");
var ajaxData = { IGC: JSON.stringify(containerObj), filename: newFilePath };
/* $.ajax({
type: "POST",
url: "../php/generateIGC.php",
data: ajaxData,
success: function() {
$('#generated_textarea').val("File created.")
}
})
})
*/ $.post( "../php/generateIGC.php", ajaxData, function(data) {
$('#generated_textarea').val(data)
} )
}