如何分配HTTP請求(GET或POST)值過濾器來過濾用於定製組件列表視圖如何設置POST或GET值到的Joomla 3.x的定製組件
我已創建自定義組件,其保持產品詳細信息和庫存詳細信息,只要庫存變低,它就會向管理員發送電子郵件,因爲我使用查詢字符串在URL鏈接中傳遞了產品和產品類別值的值。當管理員點擊電子郵件中的鏈接時,它將轉到庫存頁面並從產品列表中顯示產品詳細信息。
我面臨的,它沒有顯示結果爲URL查詢字符串值後點擊郵件鏈接的問題,它只顯示以前會話狀態值。
注意: 否則過濾器在後端和前端運行良好,並正確顯示結果。
am使用以下代碼edit.php。
$jInput = JFactory::getApplication()->input;
// From GET
$qid = $jInput->get->get('qid', 0, 'INT');
$qcatid = $jInput->get->get('qcatid', 0, 'INT');
if(!empty($qid)){
//$proname="id:".$qid;
$proname =$model->getArticleDetails('name',$qid);
$this->state->set('filter.search',$proname);
if(!empty($qcatid))
$this->state->set('filter.productcat',$qcatid); ?>
<script type="text/javascript">
jQuery(document).ready(function($) {
document.id('filter_search').value='<?php echo $proname; ?>';
document.id('productcatselect').value='<?php echo $qcatid; ?>';
document.forms["adminForm"].submit();
}
</script>
<?php } ?>
在模型文件構造
public function __construct($config = array())
{
if (empty($config['filter_fields'])) {
$config['filter_fields'] = array(
'product', 'a.fk_product_code',
'productcat', 'a.fk_productcat',
);
}
parent::__construct($config);
}
在populateState功能
//Filtering productname
$search =trim($this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search', '', 'string'));
$this->setState('filter.search', $search);
//Filtering productcat
$this->setState('filter.productcat', $app->getUserStateFromRequest($this->context.'.filter.productcat', 'filter_productcat', ''));
注:使用文本過濾器,使用selectListbox過濾器產品類別 產品名稱。
查詢字符串的URL是
'<a target="_blank" href="index.php?option=com_mycomponent&view=my_view&qid=product_id&qcatid=product_id">link</a>'
實測值的溶液,而不是以上的鏈接的。通過像下面
<a target="_blank" href="index.php?option=com_mycomponent&view=my_view&filter_search=product_name&filter_productcat=product_id">link</a>
通知的電子郵件鏈接: filter_search,filter_productcat是過濾器的名稱,從populateState功能參考
感謝您答案:)我已更新我的帖子,並找到解決方案。以前的過濾器在後端和前端工作正常,只是它不響應查詢字符串值形式的電子郵件鏈接。我正在使用* getUserStateFromRequest *過濾器名稱作爲值持有者並將其傳遞到查詢字符串url中,現在所有工作都正常了。 – Anitha 2014-12-17 03:05:16