2012-07-29 3 views
1

현재 AJAX/JS와 함께 자동 제출 양식을 작성 중입니다. 이 함수는 텍스트 입력 필드와 잘 작동하지만 선택 상자가 제대로 작동하지 않습니다. 선택한 항목의 값을 반향 출력하는 JS 함수를 가져 오는 방법이 있습니까? EXAMPLEAJAX/JS : 선택한 항목의 자동 제출 및 PHP 에코 값

AJAX는/JS 기능 제출

<script> 
    $(document).ready(function() { 
     var timer = null; 
     var dataString; 
     function submitForm(){ 
      $.ajax({ type: "POST", 
        url: "test1.php", 
        data: dataString, 
        success: function(result){ 

        $('#condition_input').text($('#resultval', result).html()); 

        } 

      }); 
      return false; 
     } 

     $('#condition').on('keyup', function() { 
      clearTimeout(timer); 
      timer = setTimeout(submitForm, 1000); 
        var condition = $("#condition").val(); 
      dataString = 'condition='+ condition; 
      }); 
    }); 
    </script> 

HTML/PHP

if (isset($_POST['condition'])){ 
    $condition = $_POST['condition']; 
    echo ('<div id="condition"><span id="resultval"><h2>Description:</h2>'.$condition.'</span></div>'); 
} 

    <select name="condition" id="condition" value="<? $condition ?>" > 
     <option value=""></option> 
      <option value="new">New</option> 
     <option value="used">Used</option> 
     <option value="not Working">Not Working or for parts</option> 
    </select> 

답변

1

당신은 "on change"-event 바인드 할 필요가 :

$('#condition').on('keyup change', function() { 
    // ... 
} 

을 마크 업이 올바르지 않습니다. select 요소에는 value 속성을 설정할 수 없습니다. 올바른 값을 선택하려면 옵션을 반복하고 옵션 "선택"을 설정하여 올바른 값을 표시해야합니다.

<?php 

// ... 

$options = array(
    '' => '', 
    'new' => 'New', 
    'used' => 'Used', 
    'not_working' => 'Not Working or for parts', 
); 
?> 

<select name="condition" id="condition" > 
<?php foreach ($options as $optionValue => $optionText): ?> 
    <option value="<?php echo $optionValue ?>" <?php echo $condition == $optionValue ? 'selected="selected"' : null ?>><?php echo $optionText ?></option> 
<?php endforeach ?> 
</select> 
+0

죄송합니다. 그러나 이것은 완벽하게 작동합니다! 고맙습니다 – CodingWonders90