2

こんにちはみんな普通じゃない:)!!

foo.php

     <?php 
         if (isset($_POST['data']))
         $stringData = $_POST['data'];
         $file = "ciao.txt"; 
         $fh = fopen($file, 'w') or die("can't open file");
         fwrite($fh, $stringData);
         fclose($fh); 

         ?>

file.js

    function WriteToFile() {
        var dataa = "foo bar";
     $.post("foo.php", {data: dataa}, function(result){ alert("ciaoooo!!");}            
           , "json");
    }

これはエラーであり、file.txtに書き込むことができません

注意:未定義の変数:stringData

そういう機能もやってみました

function WriteToFile() {
    var data = "foo bar";
$.ajax({
    url: 'foo.php',
    type: 'POST',
    data: { 'data' : 'data'},
    success: function() {
        alert('the data was successfully sent to the server');
    }
});

but the result is the same!! Anyone have some idea???
4

4 に答える 4

4

中括弧がありません:

if (isset($_POST['data'])) {
         $stringData = $_POST['data'];
         $file = "ciao.txt"; 
         $fh = fopen($file, 'w') or die("can't open file");
         fwrite($fh, $stringData);
         fclose($fh); 
 }

それらがなければ、基本的にこれがあります:

 if (isset($_POST['data'])) {
         $stringData = $_POST['data'];
 }
 $file = "ciao.txt"; 
 $fh = fopen($file, 'w') or die("can't open file");
 fwrite($fh, $stringData);
 fclose($fh); 

$stringDataこれは、POSTが正しく実行されていないために、未定義になる理由を説明しています。

これはJS/jQueryの問題を解決しないことに注意してください。そのためには、他の回答を参照してください。

于 2012-07-27T17:07:59.413 に答える
2

わかりました、これが起こっていることだと思います:

投稿したコード(例1のfoo.php / file.js)は正しく、問題なく動作します。ブラウザでfoo.phpのURLを直接ヒットしようとしているかどうかはわかりません。その場合、何も投稿されないため、$ stringDataは未定義になり、表示されている通知がスローされます。

実行する必要があるのは次のとおりです。1。file.jsスクリプトをHTMLファイルに含めます。2.jqueryライブラリが含まれていることを確認します。3。$.POSTでPHP(foo.php)ファイルパスが正しいことを確認します。4。HTML本体のonLoad関数でWriteToFile()を呼び出します。

これが機能するはずのサンプルHTMLです(必要に応じてfoo.phpへのパスを更新してください)

<script src ="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script>
function WriteToFile() 
{
    var dataa = "foo bar";
    $.post("foo.php", {data: dataa}, function(result){ alert("ciaoooo!!");}, "json");
}
</script>

于 2012-07-27T17:44:04.910 に答える
0

この時点では引用符を使用しないでください。

data: { 'data' : 'data'},

次のように置き換えます。

data: {data : data},

また、最初のコードスニペットではブラケットが必要です。次のように修正してください。

if (isset($_POST['data'])) {
  /* Your code here */
}
于 2012-07-27T17:07:44.037 に答える
0

私はあなたがこのようなものが欲しいと思います:

function WriteToFile() {
    var data = "foo bar";
    $.ajax({
    url: 'foo.php',
    type: 'POST',
    data: data,
    success: function() {
        alert('the data was successfully sent to the server');
    }
});
于 2012-07-27T17:08:06.723 に答える