[英]Passing JSON or similar object via URL and parsing in PHP
情況如下:
由於無法控制的情況,我正在編寫一個僅通過JSON公開數據的后端。
UI是純HTML / jQuery。 用戶界面中的所有查詢都會產生一個JSON對象(通常非常復雜)。 我需要UI才能向我傳遞一個復雜的對象,其中包括ID和字符串的多個列表。
最簡單的實現方法是什么?
&List=1,2,3
?Data={"List"=[1,2,3]}
如果您做過類似的事情,我會對您的經驗感興趣-特別是在將對象定義傳遞給客戶端方面。
在這種情況下,請想象以下數據包...
{
Id: 1,
Status: "Processing",
RecordTypeAIds: (1,2,3)
RecordTypeBIds: (4,5,6)
RecordTypeCIds: null
}
將信息從jQuery發送到PHP的最新穎的方法是什么(記住,列表可能嵌套n-deep)
感謝您的任何幫助,您可以提供。
只是把我的意見扔在那里。 我更喜歡JSON,只需通過您首選的方法(GET / POST)發送復雜的對象,它們就可以使用globals($ _ POST ['key'])和json_decode()幾乎立即成為PHP中的對象/數組。 如果您使用jQuery,則使用$ .ajax(),$。get()或$ .post()可以輕松實現“發送”部分。 POST理論上沒有數據限制,因此對於任意大的數據集,它是更可取的。
使用(幾乎)所有JSON解決方案Data = {... your object ...}。 在PHP中,您需要$ data = json_decode($ _ REQUEST ['Data']);。 jQuery對於瀏覽器端支持具有類似的功能。
對於HTML表單和常規URL ..編寫一個服務器端適配器,該適配器將$ _REQUEST中的參數轉換為等效的$ data結構並調用與上述相同的代碼。 如果用PHP數組符號命名HTML字段,則可以像$ data = $ _REQUEST;這樣簡單。
HTML中的示例
<input type='hidden' name='Status' value='Processing'>
<input type='hidden' name='RecordTypeAIds[0]' value='1'>
<input type='hidden' name='RecordTypeAIds[1]' value='2'>
<input type='hidden' name='RecordTypeAIds[2]' value='3'>
在$ _REQUEST中顯示為示例結構(的一部分)。
表單元素中PHP數組表示法的問題是...如果您需要從JSON填充這樣的表單,則必須在Javascript中編寫一個稍微復雜的解碼函數,以將JSON結構映射到正確的字段名稱中。 沒有避免解碼功能的好方法,因為DOM表單名稱系統是扁平的,其中嵌套了JSON字段名稱,對於JSON數組元素,名稱(索引)是隱式的。 在表單元素名稱中使用PHP數組表示法之外的任何其他方法只會使服務器端工作更多。
如果要將JSON對象傳遞給PHP,則默認情況下,所需的方法包含在5.2.0及更高版本中。 http://www.php.net/manual/en/function.json-decode.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.