所以,我最近偶然發現了PFBC,我必須說它看起來對我很有吸引力!PFBC(Php表單生成器類)可以提交JSON對象嗎?
在考慮使用它時,我只有一個主要擔心:我真的討厭$ _POST數組,這就是爲什麼我總是使用javascript函數來提交表單,提交一個(或幾個)漂亮的JSON刺痛,然後我可以將其提取到物體上,而且我真的很喜歡!
Google'ing後,我一直無法弄清楚PFBC是否可行?理想情況下,它只是一個可以配置的東西,但我有一種感覺,它不是那麼簡單(但希望)?
所以,我最近偶然發現了PFBC,我必須說它看起來對我很有吸引力!PFBC(Php表單生成器類)可以提交JSON對象嗎?
在考慮使用它時,我只有一個主要擔心:我真的討厭$ _POST數組,這就是爲什麼我總是使用javascript函數來提交表單,提交一個(或幾個)漂亮的JSON刺痛,然後我可以將其提取到物體上,而且我真的很喜歡!
Google'ing後,我一直無法弄清楚PFBC是否可行?理想情況下,它只是一個可以配置的東西,但我有一種感覺,它不是那麼簡單(但希望)?
所以我想通過強制提交一個JSON字符串。
基本上this line必須被改變到這樣的:
數據:{數據:JSON.stringify(objectifyArray($( 「#」 + $ id.id).serializeArray()))}
說明:#$id
是用PHP編寫的,你希望它在的問題,並附加「#」的jQuery(這jQuery的不知何故將其解釋爲)形式的ID,如通常在字符串中包含變量的情況。然而,它實際上是一個文本字符串(我不知道如何/爲什麼:/),因此"#" + $id.id
必須替換它,以獲得有問題的表單的實際ID屬性。
完成上述操作後,只需將格式化爲正確的JSON字符串(行),然後在objectifyArray和JSON.js JavaScript庫的幫助下完成。
function objectifyArray(a)
{
var o = {};
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}
在進一步調查中,匿名函數實際上綁定到提交按鈕,似乎應該將表單序列化爲JSON字符串,但出於某種原因,它不起作用?! data:jQuery(「#$ id」)。serialize(), – Fireworm
如果數據在jQuery.ajax調用中設置,如果您需要將dataType設置爲json。 – Orangepill
對不起,它不是需要設置的數據類型......它應該是'processData:false' [這裏](http://code.google.com/p/php-form-builder-class/source/browse /trunk/PFBC/Form.php#350) – Orangepill