Forms 如何在Joomla(2.5/3.x)中以正确的方式获取数组
如果您只想要所有的物品,Joomla方法是:Forms 如何在Joomla(2.5/3.x)中以正确的方式获取数组,forms,joomla,input,Forms,Joomla,Input,如果您只想要所有的物品,Joomla方法是: <form> <input type="checkbox" name="item[]" value="1" /> <input type="checkbox" name="item[]" value="2" /> <input type="checkbox" name="item[]" value="3" /> </form> <?php $app = JFactory::getApp
<form>
<input type="checkbox" name="item[]" value="1" />
<input type="checkbox" name="item[]" value="2" />
<input type="checkbox" name="item[]" value="3" />
</form>
<?php
$app = JFactory::getApplication();
$items = $_POST['type']; // This works but is not Joomla wise...
$items = $app->input->getArray(array('type_ids')); // Tried multiple ways but can't get it to work.
?>
$items = JRequest::getVar('item', array());
其中,如果未设置“item”,则第二个参数将是默认值。但请注意,这会像往常一样通过名称获取参数
使用Joomla平台11.1及更高版本的相同功能将是:
<form>
<input type="checkbox" name="item[]" value="1" />
<input type="checkbox" name="item[]" value="2" />
<input type="checkbox" name="item[]" value="3" />
</form>
<?php
$app = JFactory::getApplication();
$items = $_POST['type']; // This works but is not Joomla wise...
$items = $app->input->getArray(array('type_ids')); // Tried multiple ways but can't get it to work.
?>
$items = JRequest::getVar('item', array());
这里第三个参数是必需的,因为默认过滤器是“cmd”,它不允许数组 如果使用JForm生成表单,则需要从JForm数组中提取发布的数据 对于本机3.x组件控制器内部的代码如下所示:
$items = $app->input->get('item', array(), 'ARRAY');
其中,$this->input
是从JControllerBase
继承的输入对象
对于使用传统MVC类的组件,代码如下:
// Get POSTed data
$data = $this->input->post->get('jform', array(), 'array');
安全通知:
数组-尝试将输入转换为数组。像
// Get input object
$jinput = JFactory::getApplication()->input;
// Get posted data
$data = $jinput->post->get('jform', array(), 'array');
数据数组本身未被清理 对于使用旧版本的组件,以下代码有效(版本3.3):
如果你想要数组,为什么不使用复选框类型呢?哈哈,这不是我的意思(谢谢),这是显而易见的[,但我的意思是关于“对于本机3.x组件”部分,似乎没有提到这一点..哦,不!数组将确保您获得有效的PHP数组对象。但它实际上不会清理输入。您需要单独执行此操作。