2017-01-30 3 views
-1

나는 동적으로 dropDownList 상자를 만들었습니다.드롭 다운 목록 선택 yii1의 업데이트 시간 문제

첫 번째 드롭 상자는 카테고리이고 두 번째 드롭 박스는 하위 카테고리입니다. 하위 카테고리 dipand on category.

생성 시간 아무 문제도 없지만 편집 시간 카테고리는 선택되었지만 하위 카테고리는 선택되어 있지 않습니다.

모든 데이터는 단일 테이블에 저장됩니다. leval 및 parent_id 데이터를 manaj 카테고리에 추가합니다.

===> 내 테이블 데이터 | category_id | parent_id | 수준 | category_name
| 26 | 0 | 0 | 매트리스
| 27 | 0 | 0 | 메모리 폼 매트리스
| 28 | 0 | 0 | 쿨 베드
| 103 | 26 | 1 | 값 라인
| 104 | 26 | 1 | 회사
| 105 | 26 | 1 | 베개 Top
| 106 | 26 | 1 | 개별 포장 코일

========> 드롭 카테고리 및 하위 카테고리

<?php 
    $arr = array(); 
    foreach($this->furniture_id as $furniture) 
    { 
    $id=$furniture['category_id']; 
    $parent_id=$furniture['parent_id']; 
     $cat_name=$furniture['category_name']; 
     if($parent_id==0) 
     { 
    $arr[$id]=$cat_name; 
     } 
    } 
    echo $form->labelEx($model,'category_id'); 
    ?> 

    <?php echo $form->dropDownList($model,'category_id', $arr , 
    array('empty'=>'Please Select Category','onchange'=>'js:validate_dropdown(this.value)')); ?> 
    <?php echo $form->error($model,'category_id'); ?> 
    <?php echo $images_path = realpath(Yii::app()->basePath . '/sdmattsFurniture/get_category.php'); ?> 
</div></div> 

<div class="control-group" > 
<div class="row"> 
    <?php 
    echo $form->labelEx($model,'sub_category_id'); ?> 
    <?php 
    if($this->furniture_id != '') 
    { 
    $arr_val_sub = array(); 
    foreach($this->furniture_id as $furniture_sub) 
    { 
    $id_sub=$furniture_sub['category_id']; 
    $parent_id_sub=$furniture_sub['parent_id']; 
    $level=$furniture_sub['level']; 
     $cat_name_sub=$furniture_sub['category_name']; 
     if($parent_id_sub > 0 && $level == 0) 
     { 
    $arr_val_sub[$id_sub]=$cat_name_sub; 
     } 

    } 
    echo "<div id='sub_cat'>"; 
    echo $form->dropDownList($model,'sub_category_id', $arr_val_sub, 
     array('empty'=>'Please Select Category','onchange'=>'js:validate_sub_dropdown(this.value)')); 
    echo "</div>";?> 
    <?php echo $form->error($model,'sub_category_id'); ?> 
<?php } ?> 
</div> 
</div> 

=====> funcation

함수 validate_dropdown (ID)를 호출 onchange를 {

id=document.getElementById('SdmattsFurniture_category_id').value; 
    var sub_category_id=document.getElementById('SdmattsFurniture_sub_category_id').value; 
    if(id!='Please Select Category') 
    { 
    xmlhttpp_div_category=GetXmlHttpObject(); 
    if (xmlhttpp_div_category==null) 
    { 
     alert ("Browser does not support HTTP Request"); 
     return; 
    } 
    var url="<?php echo Yii::app()->request->baseUrl?>/get_category.php?id="+id+"&sub_category_id="+sub_category_id; 
    xmlhttpp_div_category.onreadystatechange=musicChanged_div_category; 
    xmlhttpp_div_category.open("GET",url,true); 
    xmlhttpp_div_category.send(null); 
    } 
} 

감사

답변

0

종속 드롭 다운 목록의 경우, 즉 dorpdonw B는 드롭 다운 A에 완전히 의존합니다. 즉, 처음에는 드롭 다운 B가 비어 있고 드롭 다운 A에서 값을 선택하면 B가 accordinly 채워집니다. 추가하는 동안 코드가 잘 작동하면 창이 열릴 때 함수 호출을 제안했습니다 like this

window.load = function(){ 
    id = id=document.getElementById('SdmattsFurniture_category_id').value; 
    ////call your function which populate the dropdown B//// 
    validate_dropdown(id); 
}