2016-04-11 13 views
0

からJSの配列を作成:は、私はjQueryのでは、以下のAJAX機能を持つJSON

$.post('../../afisare.php', {"fac_name" : facility_name }, function(response) { 
      alert(response); 
}); 

$.ajax({ 
    url: "../../afisare.php", 
    dataType: "JSON", 
    success: function(json){ 
     console.log(json); 
    } 
}); 

およびPHPファイルに次のエンコーディング:

$facility_name = $_POST['fac_name']; 

$facility_data = getFacilities($facility_name); 
$facility_data2 = json_encode($facility_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); 
print($facility_data2); 

PHPファイル($ facility_data2)の配列必要に応じて正確に印刷します。

私の質問は、JSONと同じ要素を含むsucces関数でjavascript配列を作成するにはどうすればよいですか?

編集:$ .post関数も追加。アラートはJSONを印刷しますが、console.log(json)は空の配列を出力します。明確にする:JSONは、getFacilities関数が返すものに基づいて生成されます。

その後編集:私がやったのと同じ問題(最高のアドバイス:徹底的にドキュメントを読んで)を持っている人のために、ここで働く機能は次のとおりです。

$.post('../../afisare.php', {"fac_name" : facility_name }, function(json) { 
    data = JSON.parse(json); 
    console.log(data[0].facility_name); 
}); 

私の以前の試みに問題がIということでした私は必要としているので、$ .post関数でコールバック関数を使用していませんでした(この関数は、PHPファイルにポストしている変数に直接リンクされているため、その関数の外から読み取ることはできません)。

+3

施設データをプリントアウト – peter

+0

funtionパラメータ 'json'には、PHPスクリプトからエコーアウトされたものがすべて含まれます。あなたは 'JSON_PRETTY_PRINT'を必要とせず、' json_encode() '関数の' JSON_UNESCAPED_SLASHES'パラメータも必要ないと確信しています。あなたは 'dataType:" JSON "を持っているので、JSONパラメータはPHPから送られたものと一致するjavascriptデータ型に自動的に変換されます。 – RiggsFolly

+0

JSON_UNESCAPED_SLASHESを使用しました。バックスラッシュでメインポストを編集して明確にしました。 – arch1ve

答えて

1
var result = []; 

for(var i in json) 
    result.push([i, json [i]]); 
+0

'result'はまだ空の配列を返します。 – arch1ve

+0

https://jsfiddle.net/chaoskreator/3jy7v6xz/ – chaoskreator

0
$.post('../../afisare.php', {"fac_name" : facility_name }, function(json) { 
    data = JSON.parse(json); 
    console.log(data[0].facility_name); 
}); 

私の以前の試みは、私が持っている必要がありますように私は、$ .post関数のコールバック関数を使用していなかったということであったとの問題(例えば、この関数は、直接私が投稿していた変数にリンクされていますしたがって、その関数の外部から読み取ることはできません)。

関連する問題