Option sélectionnée par Codeigniter en fonction du résultat de la requête dans une liste déroulante remplie de manière aléatoire

la programmation


Bonjour,

Je souhaite qu’une option soit sélectionnée dans la liste déroulante des cours si elle équivaut à une certaine valeur.

La liste déroulante des cours sera remplie de manière aléatoire chaque fois que l’on sélectionnera un programme dans la liste déroulante des programmes.

J’ai deux listes déroulantes programme et cours, lorsque je sélectionne le programme les cours correspondants apparaissent dans la case cours, maintenant je veux l’option sélectionnée dans les cours dont l’identifiant est affiché.

S’il vous plaît, aidez-moi à résoudre le problème.

Ce que j’ai essayé :

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

                    }
      })
    });

Solution 1

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

Votre code HTML généré n’est pas valide – vous ajoutez l’attribut non valide "option:selected" à votre élément d’option. L’attribut est simplement appelé selectedet ne doit pas être placé entre guillemets :

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

コメント

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