2014-01-31 62 views
0

基本上,如問題所述,我需要在Joomla 2.5/3.xx中獲取「POST」數據,並且我希望通過JInput(該城鎮的新講座)獲得它。通過Joomla中的JInput獲取動態發佈字段/數據

現在一切都很好,很花哨,直到我的進一步需求需要這些領域/數據是動態的,即。它(這些字段)的設計是根據環境而改變的,我無法知道字段是什麼,我知道如何在覈心php中做到這一點,但JInput並非如此,因此,它如何我該怎麼做...

回答

2

JInput不提供這樣的功能;所以你可能不得不使用$ _POST。

你可以避開它,如果你可以輸入在陣列的形式(和使用JInput::getArray())或JSON編碼的對象(您使用json_decode(JInput::getString())

後者是非常有效的我已經用它在許多項目上取得成功。

+0

這樣ATM,我現在用的是.serialize()函數jQuery中直接序列化整個窗體,並通過AJAX提交,您的意思是說,我第一次得到整個數據的一個對象,然後json對這個對象進行編碼並傳遞它,如果是這樣的話,那麼對我來說似乎有些尷尬,讓我們看看是否有人有不同的觀點/意見。 –

+1

如果他們這樣做,他們是錯的。開玩笑。但是,您可以在服務器上的jQuery和JInput :: getArray()中使用serializeArray()。 –

+0

我剛剛使用了Global POST,所以我得到了Goin'For Me,這很不錯,直到他們開始提供這個功能。 –

1

試試這個

$post = JFactory::getApplication()->input->post; 
3

嗯,我知道這已經一段時間了,因爲這是問過,但我今天整個問題來了,發現POST形成一個Joomla解決方案。

$input = JFactory::getApplication()->input; 
$fieldname = $input->post->get('fieldname'); 

這是基本相同,使用$fieldname = $_POST['fieldname'];除非你Joomla的API內停留的好處。

0

Joomla3提供兩個功能:

JInputJSON(延伸Jinput與getRaw()方法)

JResponseJson(轉換並作爲JSON返回數據)

請求數據:

var jsonString = '{"test":"1"}'; 
var data = { ajaxrequest : jsonString } 

Joomla:

$jinput = JFactory::getApplication()->input; 
$json = $jinput->getRaw('ajaxrequest'); // returns {\"test\":\"1\"} 
$data = json_decode($json); // json decode, returns data object 

// do stuff.. 

echo new JResponseJson($response);