【解決方法】Codeigniter がランダムに入力されたドロップダウンのクエリ結果に基づいて選択したオプション


こんにちは、

特定の値に等しい場合に、コースのドロップダウンでオプションが選択されるようにしたいと考えています。

コース ドロップダウンは、プログラム ドロップダウンからプログラムを選択するたびにランダムに入力されます。

プログラムとコースの 2 つのドロップダウン ボックスがあります。プログラムを選択すると、対応するコースがコース ボックスに表示されます。ID が投稿されているコースでオプションを選択したいと思います。

問題の解決を手伝ってください。

私が試したこと:

PHP
<div class="form-group">
	<label for="program">Program</label>
	<select class="form-control" name="programid" id="programid" required>
	  <option value="">Select Program</option>
	  <?php foreach($programs as $obj) { ?>
		<option value="<?=$obj['programid'] ?>"<?php if($row['programid'] == $obj['programid']) { ?> selected <?php } ?> ><?=$obj['program'] ?></option>
		<?php } ?>
	</select>
  </div>
  <div class="form-group">
	<label for="course">Course</label>
	<select class="form-control" name="courseid" id="courseid" required>
	</select>
 </div>
JavaScript
$('#programid').change(function() {
      var programid = $(this).val();
      var courseid = null;
      <?php if($row['courseid'] != null && !empty($row['courseid'])) { ?> courseid = <?php echo $row['courseid']; }  ?>       
      $.ajax({
        url : "<?=site_url('get_courses');?>",
                    method : "POST",
                    data : {programid: programid},
                    async : true,
                    dataType : 'json',
                    success: function(data){                       
                        var html = '<option value="">Select Course</option>';
                        var i;
                        for(i=0; i<data.length; i++){
                            if(data[i].courseid == courseid)
                            {
                                html += '<option value='+data[i].courseid+' "option:selected" >'+data[i].course+'</option>';
                            }
                            else
                            {
                            html += '<option value='+data[i].courseid+'>'+data[i].course+'</option>';
                            }
                        }
                        $('#courseid').html(html);

                    }
      })
    });

解決策 1

引用:
JavaScript
html += '<option value='+data[i].courseid+' "option:selected" >'+data[i].course+'</option>';

生成された HTML は無効です – 無効な属性を追加しています "option:selected" オプション要素に。 属性は単に呼ばれます selected、引用符で囲まないでください。

JavaScript
html += '<option value='+data[i].courseid+' selected>'+data[i].course+'</option>';

コメント

タイトルとURLをコピーしました