基本上问题描述的是,我需要在Joomla 2.5 / 3.xx中获取“POST”数据,我希望它通过JInput(该城镇的新谈话)。
现在一切都很好,花花公子,直到我的进一步要求需要那些领域/数据是动态的,即。它(字段)的设计根据具体情况而改变,我无法知道字段是什么,我知道如何在核心php中做到这一点,但JInput的情况并非如此,所以就是这样,如何我这样做......
我知道这已经有一段时间了,但是我今天遇到了这个问题并找到了POST
表格的Joomla解决方案。
$input = JFactory::getApplication()->input;
$fieldname = $input->post->get('fieldname');
这基本上与使用$fieldname = $_POST['fieldname'];
相同,除了你获得留在Joomla的API中的额外好处。
JInput不提供此类功能;所以你可能不得不使用$ _POST。
如果你可以输入数组(并使用JInput::getArray()
)或json编码对象(你使用json_decode(JInput::getString())
),你可以绕过它
后者非常有效我在很多项目上都成功地使用了它。
试试这个
$post = JFactory::getApplication()->input->post;
Joomla3提供两种功能:
JInputJSON(使用getRaw()方法扩展Jinput)
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);
你可以使用Jinput
$jinput = JFactory::getApplication()->input;
从特定的超级全球获取价值
$foo = $jinput->get->get('varname', 'default_value', 'filter');
$foo = $jinput->post->get('varname', 'default_value', 'filter');
$foo = $jinput->server->get('varname', 'default_value', 'filter');
有关更多详细信息,请参阅此文档:https://docs.joomla.org/Retrieving_request_data_using_JInput