2012-12-20 2 views
0

를 사용하여 CListView하기 변경된 IssueController/인덱스 활동에 $의 issue_nr 필터는 완벽하게 작동하지만, $ THER 어떤 이유로 _GET 변수는 전송 버튼을 통해 전달되는되지 않습니다!YII, • 텍스트 필드 필터를 추가하면 내가 YII 초급이고 나는를 intialise 때이 <a href="http://www.yiiframework.com/wiki/185/clistview-ajax-filtering/" rel="nofollow">Tutorial</a></p> <p>Basicaly에 표시되는 단계를 따라 어디 현재하여 CListView하는 아약스 필터를 추가 일하고 Ajax와 jQuery를

나는 잠깐 동안을 찾고 있었는데, 이것은 내가 매우 단순한 단계를 놓쳤다 고 느끼기 때문에 나를 미치게 만들었다.

어떤 종류의 도움이나 조언도 깊은 평가를 받았습니다.

내 색인 작업은

입니다 여기서

public function actionIndex($issue_nr=NULL) 
    {  
    $criteria = new CDbCriteria(); 
    if (strlen($issue_nr) > 0) 
     $criteria->addSearchCondition('issue_nr_fk', $issue_nr, true); 
    $dataProvider = new CActiveDataProvider('Issue', array('criteria' => $criteria,)); 
    $this->render('index', array('dataProvider' => $dataProvider)); 
    } 

그리고 조회수에

/이슈/인덱스

 <div class="row"> 

<?php 

    echo CHtml::beginForm(CHtml::normalizeUrl(array('Issue/index')), 'get', array('id'=>'filter-form')) 
    . CHtml::textField('string', (isset($_GET['string'])) ? $_GET['string'] : '', array('id'=>'issue_nr')) 
    . CHtml::submitButton('Search', array('submit' => array('Issue/index', 'id'=>$_GET['string']))) 
    . CHtml::endForm(); 

//JQUERY FUNCTION TO REDUCE DBQUERIES 
Yii::app()->clientScript->registerScript('search', 
     "var ajaxUpdateTimeout; 
     var ajaxRequest; 
     $('input#issue_nr_fk').keyup(function(){ 
     ajaxRequest = $(this).serialize(); 
     clearTimeout(ajaxUpdateTimeout); 
     ajaxUpdateTimeout = setTimeout(function() { 
     $.fn.yiiListView.update(

    // this is the id of the CListView 
     'ajaxListView', 
     {data: ajaxRequest} 
     ) 
     }, 
    // this is the delay 
     300); 
     });" 
     ); 
    ?> 
</div> 

<?php 
    $this->widget('zii.widgets.CListView', array(
    'dataProvider' => $dataProvider, 
    'itemView' => '_view', 
    'sortableAttributes'=>array('issue_nr_fk', 
    'c_date'), 
    'id'=>'ajaxListView', 
    )); 
?> 

답변

0

난 당신이 바로, 당신은 CHTML "로 형태로 동작을 설정하는 이해하면 :: normalizeUrl (얻을 "매개 변수"어떤없이 "배열 ('이슈/지수'), 그건 당신이 컨트롤러를받지 못한 이유 행동에 대해 빈 문자열을 사용합니다 -.. 양식이있는 모든 매개 변수와 함께 현재 페이지의 URL에 제출됩니다

+0

답장을 보내 주셔서 감사합니다 !! 이렇게 표시되어야합니다. CHTML :: beginForm (CHTML :: normalizeUrl (배열 ('' '')) '하기', 어레이 ('ID'=> '필터 형')) . CHTML ::에 textField ('문제'(는 isset ($ _ GET [ '문제'])) $ _GET [ '문제']? ', 어레이 ('ID '=>'issue_nr ')) . CHTML :: submitButton ('검색', 배열 (=> 배열 ('이슈/인덱스')) '제출') 을. CHtml :: endForm(); 출력 형식은 다음과 같습니다. http : //localhost/Sys/index.php? r = 문제 % 2Findex & 0 = & issue = 10 조언이나 조언을 크게 듣습니다! :) – KayKay

+0

편집 : 출력 형식 : http : //localhost/Sys/index.php/Issue/index? issue = 25 – KayKay

+0

나는 이것을 IndexAction에 추가하여 어떻게 든 작동한다고 생각합니다. if (isset ($ _ GET [ '문제'])) { $ issue_nr = $ _ GET의 [ '문제']; } – KayKay