2014-04-28 2 views
0

두 번째 드롭 다운을 만들 때 문제가 발생했습니다. 선택한 항목이 첫 번째 드롭 다운의 첫 번째 선택 항목 인 경우 숨기기/숨김을 취소합니다. 이것이 프론트 엔드에 가깝기 때문에 AJAX를 사용할 것이라고 생각했습니다. 내가 X-editable 위젯을 사용하고두 번째 드롭 다운을 만드는 방법 첫 번째 드롭 다운 선택에서 숨기기/숨기기 취소 하시겠습니까?

는, 여기에 코드입니다 :

<div class="control-group"> 
    <label class="control-label" for="category">大カテゴリ</label> 
     <div class="controls"> 
     <?php 
      $criteria = new CDbCriteria; 
      $criteria -> condition = 'parent_id=:parent_id AND school_id=:school_id AND status=:status'; 
      $criteria -> params = array(':parent_id' => 0, ':school_id' => $school_account_info -> id, ':status' => 'active'); 
     ?> 

     <?php 
      $this->widget('editable.EditableField', array(
       'id'  => 'drop', //ADDED THIS LINE SO I COULD GET THE SELECTED VALUE BUT I GUESS I'M WRONG 
       'type'  => 'select', 
       'model'  => $model, 
       'attribute' => 'category', 
       'url'  => '/school/Materials_Photos/View', 
       'source' => Editable::source(AssetCategory::model()->findAll($criteria),'id','category'), 
       'placement' => 'right', 
      )); 
     ?> 

     </div> 
</div> 

//SECOND DROPDOWN (SAMPLE ONLY) 
<div class="control-group" id="sub_category" style="display: none"> 
    <label class="control-label" for="category">中カテゴリ</label> 
    <div class="controls"> 
     <?php echo CHtml::dropDownList('sub_category', '', array(), array('prompt' => 'Select')); ?> 
    </div> 
</div> 

그러나 나는이 보았다

<a href="#" id="status" data-type="select" data-pk="1" data-url="/post" data-title="Select"></a> 
<script> 
$(function(){ 
    $('#status').editable({ 
     value: 2,  
     source: [ 
       {value: 1, text: 'Active'}, 
       {value: 2, text: 'Blocked'}, 
       {value: 3, text: 'Deleted'} 
      ] 
    }); 
}); 
</script> 

을하고 난이 더 실용적입니다 생각, 내가 얼마나 이해할 수 없었다 JS를 통해 소스를 ActiveRecord에서 가져옵니다.

답변

1

유효성 검사 콜백을 확인하십시오. 그것은 당신을 도울 것입니다. OK 버튼을 클릭하면 validate가 트리거됩니다.

여기를 읽어보십시오.

http://x-editable.demopage.ru/index.php?r=site/widgets#Options 내가 그래서 그 속성을 활용해야 할 YII 프레임 워크에 대한 X-편집 가능한 위젯을 사용하고이

 <?php 
     $this->widget('editable.EditableField', array(
      'id' => 'drop', //ADDED THIS LINE SO I COULD GET THE SELECTED VALUE BUT I GUESS I'M WRONG 
      'type' => 'select', 
      'model' => $model, 
      'attribute' => 'category', 
      'url' => '/school/Materials_Photos/View', 
      'source' => Editable::source(AssetCategory::model()->findAll($criteria), 'id', 'category'), 
      'placement' => 'right', 
      'validate' => 'js: function(value) 
      { 
       console.log(value); //The value you are selecting from x-editable dropdown 
       if($.trim(value) == "Somthing") 
       { 
        //Your functionality 
       } 
      }' 
     )); 
     ?> 
+0

링크를 가져 주셔서 감사합니다. 매개 변수 참조에 대한 설명서를 찾을 수 없습니다. 나는 단지 사용 예제를 발견했다. 이제 validate 속성을 사용하여 선택된 값을 얻는다. –

1

간단히 jQuery를 사용할 수 없습니까?

$(document).ready(function() { 
    var drop1val = $(".drop1").val(); 
    if (drop1val == "first") 
    { 
      $(".drop2").hide(); 
    } else { 
      $(".drop2").show(); 
    } 
}); 

x 편집 가능한 위젯이 무엇인지 모르겠지만, 일반적인 HTML 형식의 관점에서 볼 때, 제 코드가 작동해야합니다. 최소한 생각해야 할 것.

코드가 드롭 다운 목록을 생성하는 경우, then을 작성하면 해당 태그에 클래스 또는 ID를 추가 할 수 있습니까?

+0

같이하십시오. 그래도 고마워. –

관련 문제