2013-04-02 5 views
2

jquery와 ajax를 사용하는 다른 옵션의 옵션을 기반으로 하나의 선택 상자를 채우는 방법을 알고 있지만 선택 상자가 배열 일 때 어떻게합니까?선택 항목이 배열 일 때 하나의 선택 상자 채우기

기본적으로 페이지에 5 개가 있습니다. 그러나 필요한만큼 줄을 추가 할 때도 .EnableMultiField()를 사용하고 있습니다. 주어진 주마다 10-30 대의 차량을 인벤토리에 추가합니다.

아약스 :

$(".make").change(function() { 
var id=$(this).val(); 
var dataString = 'id='+ id; 

$.ajax ({ 
    type: "POST", 
    url: "get_models.php", 
    data: dataString, 
    cache: false, 
    success: function(html) { 
     $(".model").html(html); 
    } 
}); 

}); 

PHP : 대답에 대한

  <ul> 
      <li><label for="year[]">Year</label><select name="year[]"><option></option>'.$Year.'</select></li> 
      <li><label for="year[]">Make</label><select name="make[]" class="make"><option></option>'.$Make.'</select></li> 
      <li><label for="year[]">Model</label><select name="model[]" class="model" style="width: 120px"><option></option>'.$Model.'</select></li> 
      <li><label for="trim[]">Trim</label><input type="text" size="10" name="trim[]" /></li> 
      <li><label for="vin[]">VIN</label><input type="text" name="vin[]"size="20" maxlength="17" onkeyup="return Upper(event,this)" /></li> 
      <li><label for="mileage[]">Mileage</label><input type="text" name="mileage[]" size="3" maxlength="6" /></li> 
      <li><label for="color[]">Color</label><select name="color[]"><option></option>'.$Color.'</select></li> 
      <li><label for="cost[]">Cost</label><input type="text" name="cost[]" size="6" maxlength="6" onchange="currency(this)" /></li> 
      <li><label for="asking[]">Asking</label><input type="text" name="asking[]" size="6" maxlength="6" onchange="currency(this)" /></li> 
     </ul> 
+0

'VAR의 dataString으로

$(".make").change(function() { 

교체;'. 실제 코드에서'\ ''또는 질문에서 일부 오타가 있습니까? – Ejaz

+0

복사 및 붙여 넣기 ... jquery 코드는 PHP로 래핑되므로 따옴표를 이스케이프하고있었습니다. 이 코드는 작동하지만 첫 번째 "확인"필드에만 표시 –

+0

누구도 hunh를 모를 수 있습니까? –

답변

1

나는 당신의 문제는 당신이 AJAX를 통해로드 모델 모두 .model에 설정되어 있는지 생각 당신은 당신의 $('.make').change(...)

 $(".make").change(function() { 
      var $this = $(this); 
      var id = $(this).val(); 
      var dataString = 'id=' + id; 

      $.ajax({ 
       type: "POST", 
       url: "get_models.php", 
       data: dataString, 
       cache: false, 
       success: function (html) { 
       $(".model", $this.closest('ul')).html(html); 
       } 
      }); 
     }); 
을 다음으로 변경해야 이 새로운 "모델" .make의 변경 <ul>

업데이트 만에 대한 .model 선물을 설정합니다

0 는 동적 .make 대한 추가 수용 = \ 'ID = \'+ ID

$(document).on('change', 'ul .make', function() { 
+0

감사합니다 .... 그랬습니다! –

+0

사실, 그 짓을 했어 ... 원래 6 모델 및 페이지에서 모델과 올바르게 작동하지만 EnableMultiField() 스크립트를 통해 더 추가하면 해당 새 필드가 작동하지 않습니다. –

+0

내 대답을 업데이트하는 동안 기다려주십시오 ... – Ejaz

0

나의 제안은 당신의 처음 세 <label> 's의 실수 year[] 대신 year[], make[]model[] 가리키는된다는 것입니다. 그것은 당신 물건에서 벗어나고 있습니까? 그것은 첫번째 "make"필드를 치고 위로 던졌습니다. ... 나에게 의미가

행운을 빕니다 (:.

+0

아니요, 레이블은 아무 관련이 없습니다. 이후 페이지에서 제거되었습니다. 여기 페이지가 있습니다. 누군가 내 뜻을 알 수 있습니다. http://www.login.carcityofdanbury.com/New/01/add.php –

관련 문제