2017-05-09 5 views
1

私はinputとサブミットbuttonを含む基本フォームを持っています。 inputの値をJSONに変換し、後で使用するためにサーバー上のファイルに配置することをお勧めします。私はAJAXと小さなPHPスクリプトを使用してデータとファイルの作成を処理していますが、JSONファイル(test.json)は作成されません。PHPを使用した.JSONファイルの作成

HTMLマークアップ

<input id="title" type="text" name="title" value="Page Title"/> 
<button type="submit" value="submit" id="submit">Submit</button> 

JS

var submit = $('#submit'); 
var title = $('#title'); 

function createJSON() { 
    var jsonObj = []; 
    title.each(function() { 

     var value = $(this).val(); 
     var item = {}; 
     item.title = value; 
     jsonObj.push(item); 
    }); 

    $.ajax({ 
     url:  "create-file.php", 
     data: { 
      data: jsonObj 
     }, 
     type: "POST" 
    }); 
} 

submit.on('click', function() { 
    createJSON(); 
}); 

PHP(作成-file.php)

<?php 
    $json = $_POST['data']; 
    $info = json_encode($json); 
    $file = fopen('test.json','w+') or die("File not found"); 
    fwrite($file, $info); 
    fclose($file); 
?> 

JSON

[ 
    { 
     title: "Page Title" 
    } 
] 
+0

あなたが取得しているか、エラー? –

+0

@AlivetoDieエラーは表示されません。このスクリプトはJSON罰金を作成し、AJAX呼び出しで渡され、その後は何も渡されません。 – Ryan

+0

エラーがあります。スクリプトの場所内にファイルが作成されていないことは確かですか? –

答えて

1

あなたはdata: {data: jsonObj},を持っているので、PHPでそれを -

$json = $_POST['data']; 

エラーの報告を追加すると、エラーの詳細が表示されます。すべてのエラーが解決されたら、コメント行にコメントしてください。

は、以下のように実行します -

<?php 
    //comment these two lines when errors are resolved 
    error_reporting(E_ALL); 
    ini_set('display_errors',1); 

    $json = $_POST['data']; //json need to be data 
    $info = json_encode($json); 
    $file = fopen('test.json','w+') or die("File not found"); 
    fwrite($file, $info); 
    fclose($file);exit; 
?> 

私はそれをチェックして、それは私の地元の終わりに

注働いています: - あなたはtitle = $('#title');title.each(function() {を持っています。将来的には

を使用すると、1つのテキストボックスが複数ある場合は、このようclassidを変換: -

<input class="title" type="text" name="title" value="Page Title"/> 
+0

はい、私の愚かな '$ _POST'エラーは修正されましたが、JSONファイルには' null'と他に何も含まれていませんか? – Ryan

+0

働いている - 「id」でも頭を上げてくれてありがとう! – Ryan

+0

@Ryanあなたを助けてうれしい:) :) –

1

こんにちはあなたはコード以下のように記述する必要があります。

$json = $_POST['data'];//$_POST['json'];  
$info = json_encode($json);  
$file = fopen('test.json','w+') or die("File not found"); 
fwrite($file, $info); 
fclose($file); 
die; 

それは[{「タイトル」:「ページタイトル」}]のようなファイルtest.jsonでJSONを書きます

+0

ありがとうございます。これは愚かな '$ _POST ['data']'エラーのために助けになりましたが、書き込まれたファイルにはJSON出力ではなく 'null'が含まれています。 – Ryan

関連する問題