2012-10-01 28 views
3

我有一個名爲更新功能,需要一些選項和後使用.post的$我的PHP:條件對象JSON後

function update(options){ 
    $.post('update.php',{update: options}, function(data, textStatus, jqXHR){ 
    // debug stuff from php 
    }); 
} 

我打電話給我的功能如下:

update({'id': id, 'option': val}); 

我想知道的是我如何在選項中作出條件?例如:

var option = $(this).attr('class') == 'check' ? 'check' : 'ok'; // assuming option is ok 

update({'id': id, 'ok': val}); // instead of option 

update({'id': id, option: val}); // i want to have the conditional 

回答

4

您可以像訪問數組一樣訪問Javascript對象。此語法支持動態屬性名稱/鍵。

options[variable] = 'value'; 

例子:

var x = 'customProperty' 
, y = {} 
; 

y.x = 12; //y.x = 12 
y[x] = 11; //y.customProperty = 11... same as y['customProperty'] = 11 

http://jsfiddle.net/CoryDanielson/Dugdd/

+0

他希望'option'是一個動態的鍵我認爲 –

+0

是的,這將工作 –

+0

謝謝@CoryDanielson – chatu

0

基本上你設置你的對象,例如:

var x = {}; 

然後分配的確切性質你想

var prop_name = $(this).attr('class') == 'check' ? 'check' : 'ok'; 
x[prop_name] = YOUR_VALUE; 
+0

如果你要求把實際條件本身放在JSON字符串中,答案是「否」,你可以'因爲條件表達式將被評估爲其布爾結果(true或false),並且將始終返回由三元語句的每個部分指定的值。 – Derek