2011-09-20 45 views
2

我有2個部分的問題。將JSON轉換爲數組並獲取類型

  1. 如何讓我的劇本,以提醒在javascript 而不是[object object]變量type
  2. 如何讓我的Json成功轉換爲陣列而不返回 NULL

的Javascript:

$(document).ready(function() { 

// Arrays 
var title = $('.table-item-1 > strong').map(function() { 
    var value = $(this).text(); 
     return value; 
    }).get(); 

var name = $('[width|="23%"]').next('.table-item-1').map(function() { 
    var value = $(this).text(); 
     return value; 
    }).get(); 

var phone = $('[width|="23%"]').next('.table-item-1').next('.table-item-1').map(function() { 
    var value = $(this).text(); 
     return value; 
    }).get(); 

var fax = $('[width|="23%"]').next('.table-item-1').next('.table-item-1').next('.table-item-1').map(function() { 
    var value = $(this).text(); 
     return value; 
    }).get(); 

var email = $('[width|="23%"]').next('.table-item-1').next('.table-item-1').next('.table-item-1').next('.table-item-1 , a').map(function() { 
    var value = $(this).text(); 
     return value; 
    }).get(); 

// Individual  
var brand = $('.panel-1 tr strong').html(); 
var corp = $('.panel-1 tr td :gt(0)').html(); 
var web = $('.panel-1 tr td ~ .focus :not(strong)').html(); 
var lna_code = $('.panel-1 tr td :last').html(); 
var lna_class = $('.panel-1 tr td :gt(4)').html(); 


var items = { 
    'brand': brand, 
    'corp': corp, 
    'web': web, 
    'lna_code': lna_code, 
    'lna_class': lna_class, 
    'title': title, 
    'names': 
     name, 
    'phones': 
     phone, 
    'faxes': 
     fax, 
    'emails': 
     email, 
}; 

var data = $.toJSON(items); 

$.ajax({ 
    type: 'POST', 
    url: 'http://xxxxxx.com/xxxxx/PHP/excel.php', 
    data: {'data':data}, 
    success: function(data) { 
     alert('success'); 
    }, 
    complete: function(data){ 
     alert(data); // alerts [object object] , want a string 
    } 
}); 

}); 

PHP:

<?php 
$json = $_POST['data']; 
$result = json_decode($json); 
$resultsType = gettype($result); 
echo $resultsType; 
?> 

注:我使用json.js$.toJSON(items);呼叫

回答

1

如果你想要得到的結果是一個數組在PHP方面,它可能應該是javascript方面的一個數組:

[value1] 

代替

{key1 = value1} 

什麼是你的代碼中發生的你,而不是創建一個對象。該對象可能是你真正想要的,但它似乎不需要迭代PHP端的值,這將是實際數組與對象相對的唯一原因。

如果你離開代碼規範,請訪問值在PHP端像這樣:

echo $result->brand; 
+0

謝謝,JSON是太麻煩的處理。這讓我意識到我可以在沒有轉換的情況下做到這一點。我只是在沒有鍵的情況下將我的對象重新命名爲[],PHP將它們作爲數組讀取。都好。 – Chamilyan

+0

@Chamilyan這樣做,如果你喜歡。無法想象爲什麼你會喜歡那個對象。用一個數組處理匿名數據......用一個對象,你可以通過名字引用特定的數據。 – dqhendricks

+0

好吧,你贏了,再次使它成爲一個對象:)。更乾淨。 – Chamilyan