2012-07-29 37 views
1

我目前正在使用AJAX/JS自動提交表單。該功能適用​​於文本輸入字段,但選擇框效果不佳。有沒有辦法讓JS函數回顯所選項目的值? EXAMPLEAJAX/JS:自動提交併選擇項目的php echo值

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元素上設置值屬性。要選擇正確的值,您必須遍歷選項並通過設置屬性「selected」來標記正確的值:

<?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 2012-07-30 06:07:46