2011-05-12 4 views
0

Jquery에서 PHP 배열의 항목 수에 따라 즉석에서 선택 상자를 만들고 각 선택 상자 옵션의 값을 배열 항목.Jquery : 복제 된 선택 상자 값 설정 문제

var arrayFromPHP = <?php echo json_encode($exhibArray) ?>; // There's our array from php->jquery 

내가 다음 첫 번째 선택의 옵션을 채워서 시작하고 다음 '각 내에서 후속 상자를 생성 : 여기

<div id="artistArea"> 
    <div class="category_block"> 
    <select name="artistSelect[]" class="cat_list"> 
     <option value="">- none -</option> 
    </select> 
    </div> 
</div> 

배열 변환의 :

첫째, 여기에 HTML의 ''성공 '콜백 루프 :

$.ajax({ 
     url: 'artistpop.php', 
     success: function(data){ 
      $('.cat_list').append(data); //Sets options for first select box 
      $.each(arrayFromPHP, function (i, elem) { //loop through our array values 
       $("#artistArea > .category_block:last .cat_list").val(elem); //set the select box value 
       $('#artistArea > .category_block:last').after($('#artistArea > .category_block:last').clone()); //clone the previous select box  
      }); 
     } 
    }); 
그래서 ... 문제는 : 0123입니다.

첫 번째 상자 생성 및 채우기가 잘 작동하고 후속 상자가 만들어집니다. 그러나 배열의 적절한 값으로 첫 번째 선택 상자 만 설정됩니다. 나머지는 '없음'옵션으로 유지됩니다.

각 루프에 문제가있을 수 있습니까?

이 내용이 이해하기에 충분할 것으로 기대됩니다. - 혼란 스럽습니다!

답변

0

선택 항목의 값을 설정하지 않고 원하는 실제 옵션에 "selected"속성을 설정해 보았습니까? 다른 말로하면 ...

$('#artistArea > .category_block:last .cat_list option[value=' + elem + ']').attr('selected','selected');

+0

품질! 단순한, 정말로 그것의 둘레에 나의 머리를 얻을 수 없었다. 건배. –

+0

도와 드리겠습니다! BTW는 더 나은 성능과 양식을 위해 작은 jQuery를 트리밍하는 좋은 예입니다. $ ('# artistArea> .category_block : 마지막 .cat_list 옵션 [value ='+ elem + ']') [0] .selected = true – glortho

+0

흥미 롭습니다 ... 이것은 제가 잃어 버렸습니다.이 jQuery 단축형은 내가 완전히 놓친 것입니다.이 문서를 읽을 수있는 몇 가지 문서를 가르쳐 주시겠습니까? jQuery의 깊이와 능력은 절 놀라게하지 않습니다! –