Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在joomla组件中传递get变量_Variables_Joomla_Get_Components - Fatal编程技术网

Variables 在joomla组件中传递get变量

Variables 在joomla组件中传递get变量,variables,joomla,get,components,Variables,Joomla,Get,Components,我正在尝试构建一个简单的joomla组件,它将基于API显示定制的google搜索结果。如何将get变量传递给joomla组件?假设我已经掌握了调用自定义视图的基本知识index.php?option=com\u google&view=google,然后我想将'q'$\u GET变量传递给它url查询字符串应该是什么样子的?您可以使用以下方法在Joomla中检索GET变量: $q = JRequest::getVar( 'q' ); 这适用于url字符串,如下所示: index.php?op

我正在尝试构建一个简单的joomla组件,它将基于API显示定制的google搜索结果。如何将get变量传递给joomla组件?假设我已经掌握了调用自定义视图的基本知识
index.php?option=com\u google&view=google
,然后我想将
'q'$\u GET
变量传递给它url查询字符串应该是什么样子的?

您可以使用以下方法在Joomla中检索GET变量:

$q = JRequest::getVar( 'q' );
这适用于url字符串,如下所示:

index.php?option=com_google&view=google&q=some_variable
与URL一起工作,因此变量总是在请求的URL中传递

要将
q
添加到当前URL,只需将
&q=SomeValue
添加到相应的
SomeValue
位置即可

Joomla 1.5

如果你用的是Joomla!1.5无论是通过
POST
还是
get
提交,您都可以使用获取任何变量的值,请参阅。

$q=JRequest::getVar('q');
Joomla 1.6+

为了乔姆拉!1.6+建议对
JRequest
进行折旧,对于Joomla!3.0+您必须使用
JInput
as,并将在接下来的几个版本中继续消失

要使用
JInput
,您可以获取当前对象或通过当前Joomla应用程序使用链接来检索变量

获取
JInput

$jAp=JFactory::getApplication();//拥有Joomla应用程序也很有用
$jInput=$jAp->input;//这是输入对象
$q=$jInput->get('q');//当然,您的变量get()支持其他选项。。。
通过链接使用
JInput

$jAp=JFactory::getApplication();//拥有Joomla应用程序也很有用
$q=$jAp->input->get('q');//你的变量

感谢您的详细回复!为了完整起见,我认为值得在此指出的是,尽管Joomla核心组件已被弃用,但大多数Joomla核心组件仍然在Joomla 2.5中使用JRequest,因为JInput已经知道magic quotes的问题。JRequest没有。在Joomla 3.0中,需要关闭魔法引号,因此没有任何问题@GeorgeWilson非常正确,但请记住,自PHP5.3.0起,magic quotes功能已被弃用,并从PHP5.4.0起被删除。(在目前大多数主机使用的PHP5+中,默认情况下它们也是关闭的)。