我有使用AJAX发送 - 接收数据的机制。数据被发送到php文件,然后在完成后,结果将以JSON-from(使用encode_json方法)发回。然后将为每个目标提取收到的json数据。
当我尝试提取从php文件传输的json消息时出现问题。 这是 Javascript 部分
function set_filter() {
var a = document.getElementById('Tema');
var b = a.options[a.options.selectedIndex].value;
$.get("filter.php", {tema: b, method: 'set_filter'}, function(data, status) {
alert(status);
console.log(data);
x = JSON.parse(data);
alert(x.count);
});
}
这是console.log(数据)的结果
块引用 {“filters”:{“id_filter”:[“2”,“1”,“3”],“judul_filter”:[“Jenis Arus Dana”,“Instansi NAD”,“Kategori Transaksi NAD”]},“select_list “:[[[” S”, “p”],[ “苏木贝尔”, “Pengeluaran”]],[[ “1”, “2”, “3”, “4”, “5”, “6” ],[“Bank Sentral”,“Perbankan”,“Pemerintah”,“Domestik Lain”,“Luar Negeri”,“Seluruh Instansi”],[[“0200”,“0300”,“0400”,“0500” , “0600”, “0700”, “0800”, “0900”, “1000”, “1010”, “1020”, “1021”, “1022”, “1023”, “1024”, “1025”,” 1030" , “1100”, “1200”, “1210”, “1220”, “1230”, “1300”, “1400”, “1410”, “1420”, “1500”, “1800”, “2000” ,“9000”,“0100”],[“Investasi Non Finansial”,“Pinjaman Neto”,“Selisih Statistik”,“Investasi Finansial Neto”,“Jumlah Penggunaan Finansial”,“Jumlah Sumber Finansial”,“Cadangan Valas Pemerintah” ,“Klaim Dalam Valas Lainnya”,“Uang Dan Simpanan”,“Uang Dan Simpanan Dalam Valas”,“Uang Dan Simpanan Dalam Rupiah”,“Uang Kertas Dan Logam”,“Giro”,“Tabungan”,“Deposito Berjangka”, “Simpanan Rupiah Lainnya”,“Tabungan Giro Pos Dan Koperasi”,“Surat Berharga Jangka Pendek”,“Kredit”,“Kredit Bank Dalam Rupiah”,“Kredit Institusi L ain D.Rupiah“,”Kredit Dalam Valas“,”Modal Saham Dan Penyertaan“,”Surat Berharga Jangka Panjang“,”Surat Berharga Pemerintah“,”Surat Berharga Lainnya“,”Cadangan Asuransi Dan Pensiun“,”Kredit Dagang“, “Rekening Antar Bank”,“Rupa-Rupa”,“Tabungan Bruto”]]}
当我检查此行“alert(x.count);”时,它会返回
未定义
如果我想提取所有judul_filter或id_filter或其他,我如何才能实现每个/特定元素?
注意:我访问了一些链接,例如 Cant read JSON produced by PHP into my javascript Parse JSON in JavaScript? Convert JSON string to Javascript array 但是从我尝试的建议,它返回undefined或[pbject对象]。数据必须使用JSON.Stringify(数据)解析为字符串吗?或者如何?
-Thanks -
答案 0 :(得分:0)
看起来你正在返回一个json数据,所以使用$ .ajax()的自动解析。
您可以使用$ .getJSON()或将数据类型作为'json'
传递给$ .get()
function set_filter() {
var a = document.getElementById('Tema');
var b = a.options[a.options.selectedIndex].value;
$.getJSON("filter.php", {
tema: b,
method: 'set_filter'
}, function (data, status) {
var judul_filter = data.filters.judul_filter;
var id_filter = data.filters.id_filter;
console.log(judul_filter, id_filter);
var select_list = data.select_list;
console.log(data.select_list.length)
});
}
如果你想获得像count
这样的数组的长度,使用select_list
data.select_list.length
的属性
答案 1 :(得分:0)
你没有数,你需要使用x.length