1

現在、フォームを自動送信するために AJAX/JS を使用しています。関数はテキスト入力フィールドではうまく機能しますが、選択ボックスではうまく機能しません。選択したアイテムの値をエコーするJS関数を取得する方法はありますか?

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>
4

1 に答える 1

1

「変更時」イベントをバインドする必要があります。

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

そして、あなたのマークアップは正しくありません。select 要素に value 属性を設定することはできません。正しい値を選択するには、オプションをループし、属性「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>
于 2012-07-29T21:45:12.020 に答える