저는 작은 지불 모듈을 생성합니다. 구성은 간단한 CRUD로 관리해야하며 HelperList 클래스를 사용하여 데이터베이스에 저장된 레코드가있는 테이블을 표시합니다. 테이블 데이터베이스 구조의 하나는 내가 활성화 또는 내가 '활성화를 사용하여 버튼을 통해 항목을 비활성화 할 예정으로 그래서, list_fields 값이헬퍼리스트 상태 액션 (아약스 포함)
array(
'id' => array(
title' => $this->l('Id'),
//'width' => 140,
'type' => 'text',
'align' => 'center'
),
'name' => array(
'title' => $this->l('Name'),
//'width' => 140,
'type' => 'text',
'align' => 'center'
),
'active' => array(
'title' => $this->l('Status'),
//'width' => 140,
'active' => 'statusItem',
'type' => 'boolean',
'align' => 'center',
'ajax'=> true
)
);
처럼이
'CREATE TABLE IF NOT EXISTS '._DB_PREFIX_.'MODULE_ITEM
(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`active` VARCHAR(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'
유사하다 '및'ajax '옵션을 사용하고 모듈 구성 페이지에서 렌더링 할 때 해당 열에 대해 생성 된 링크는 index.php?controller=AdminModules&configure=Example&item_id=4&statusItem&action=statusItem&ajax=1&(...)
과 같습니다. statusItem은 작업의 이름입니다.
한편,이 기능을 모듈 기본 파일에 작성했는데,이 기능을 사용하면 항목 상태가 변경됩니다.
public function ajaxProcessStatusItem()
{
$id=(int)Tools::getValue('item_id');
$value=(int) Db::getInstance()->executeS($this->createSelectQuery('module_item','item_id',$id))[active];
Db::getInstance()->update('module_item', array('active' => !$value), 'item_id='.$id);
die();
}
나는 목록을 작성하는 공식 문서의 this 기사를 사용하고 있지만, 아무리 내가 ('ajaxProcess'를 사용 어떤 이름, 'ajaxProcessSatusItem', 'statusItem', 모든 모자는 내가 생각할 수있는 변주 없습니다 의) 내가 얻는 누구나는 응답의 빈 페이지 다. 그리고 상태의 어떤 변경도 없다. 소스 코드를 살펴 봤는데 HelperList 클래스에 함수 호출 방법에 대한 설명이 없습니다.
도움이 될 것입니다. 당신이 당신의 데이터 객체에 대해 objectModel를 클래스를 사용하는 경우
'활성'입력란이 부울이어야합니까? 대안으로 나는 AdminStatusesController에서 보여준 것과 비슷한 ajaxProcessStatusItem을 사용했으나 그것도 작동하지 않았다. – Trickylastname
답변을 업데이트했습니다. – gskema