Opción seleccionada por Codeigniter según el resultado de la consulta en un menú desplegable completado aleatoriamente

programación


Hola,

Quiero que se seleccione una opción en el menú desplegable del curso si equivale a un valor determinado.

El menú desplegable del curso se completará aleatoriamente cada vez que se seleccione un programa del menú desplegable.

Tengo dos cuadros desplegables programa y curso, cuando selecciono el programa vienen los cursos correspondientes en el cuadro del curso, ahora quiero seleccionar la opción en los cursos cuyo id está publicado.

Por favor ayúdame a resolver el problema.

Lo que he probado:

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);

                    }
      })
    });

Solución 1

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

Su HTML generado no es válido: está agregando el atributo no válido "option:selected" a su elemento de opción. El atributo se llama simplemente selectedy no debe estar entre comillas:

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

コメント

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