【发布时间】:2014-02-23 21:53:41
【问题描述】:
基本上正如问题所述,我需要在 Joomla 2.5/3.xx 中获取“POST”数据,并且我希望通过 JInput(镇上的新话题)获得它。
现在一切都很好,花花公子,直到我的进一步要求需要这些字段/数据是动态的,即。它(字段)旨在根据情况进行更改,我无法知道字段将是什么,我知道如何在核心 php 中执行此操作,但 JInput 并非如此,就是这样,如何我做吗...
【问题讨论】:
基本上正如问题所述,我需要在 Joomla 2.5/3.xx 中获取“POST”数据,并且我希望通过 JInput(镇上的新话题)获得它。
现在一切都很好,花花公子,直到我的进一步要求需要这些字段/数据是动态的,即。它(字段)旨在根据情况进行更改,我无法知道字段将是什么,我知道如何在核心 php 中执行此操作,但 JInput 并非如此,就是这样,如何我做吗...
【问题讨论】:
您可以为此使用 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
【讨论】:
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);
【讨论】:
试试这个
$post = JFactory::getApplication()->input->post;
【讨论】:
好吧,我知道这已经有一段时间了,但我今天遇到了这个问题,并为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())),则可以绕过它
后者非常有效,我已在许多项目中成功使用它。
【讨论】: