У меня есть форма с тремя выпадающими списками.Значение второго раскрывающегося списка заполняется в соответствии с первым раскрывающимся списком, а значение третьего раскрывающегося списка - в соответствии со вторым раскрывающимся списком
Таким образом, я могу заполнить раскрывающиеся списки в соответствии со значениями и вставить их в базу данных.
Теперь моя проблема заключается в том, как предварительно выбрать значения раскрывающегося списка при редактировании формы.
Вот моя форма:
<form action="edit" method="post" enctype="multipart/form-data">
<div class="row">
<div class="col-md-4 form-group">
<label>Subject <span style="color:red;">*</span></label>
<select class="form-control" name="subject" id="subject" required>
<option value="">Select Subject Name</option>
<?php foreach($subjects as $sub):?>
<option value="<?php echo $sub['id']?>"><?php echo
ucwords($sub['subject_name']);?></option>
<?php endforeach;?>
</select>
</div>
<div class="col-md-4 form-group">
<label>Topic <span style="color:red;">*</span></label>
<select class="form-control" name="topic" id="topic" required>
<!-- using ajax to populate dropdown according to the
selection of subject -->
</select>
</div>
<div class="col-md-4 form-group">
<label>Co-Topic <span style="color:red;">*</span></label>
<select class="form-control" name="cotopic" id="cotopic"
required>
<!-- using ajax to populate dropdown according to the
selection of subject -->
</select>
</div>
</div>
</form>
jquery для заполнения:
<script>
$('#subject').on('change',function()
{
var subid=$(this).val();
$.ajax({
type:"POST",
url:"<?php echo site_url('AdminTopics/topicOnSubjects');?>",
data:{subid:subid},
success:function(res)
{
$("#topic").html(res);
console.log(res);
}
});
});
</script>
<script>
$('#topic').on('change',function()
{
var tid=$(this).val();
$.ajax({
type:"POST",
url:"<?php echo site_url('AdminCoTopics/coTopicOnTopics');?>",
data:{tid:tid},
success:function(res)
{
$("#cotopic").html(res);
console.log(res);
}
});
});
</script>
controller
public function topicOnSubjects()
//this function is used in ajax on createCoTopic page to populate topic
based on selection of subject
{
$post=$this->input->post();
$result=$this->tm->getTopicBySubjects($post);
echo $result;
}
public function coTopicOnTopics()
//this function is used in ajax on createCoTopic page to populate topic
based on selection of subject
{
$post=$this->input->post();
$result=$this->tm->getCoTopicByTopic($post);
echo $result;
}
Модель:
public function getTopicBySubjects($post)
{
$subid=$post['subid'];
$q=$this->db
->select('id,topic_name')
->from('topics')
->where('sub_id',$subid)
->get();
$row=$q->result();
$result='<option value="">Select Topic</option>';
foreach($row as $row)
{
$result .='<option value="'.$row->id.'">'.ucwords($row->topic_name).'</option>';
}
return $result;
}
public function getCoTopicByTopic($post)
{
$tid=$post['tid'];
$q=$this->db
->select('id,co_topic_name')
->from('cotopics')
->where('topic_id',$tid)
->get();
$row=$q->result();
$result='<option value="">Select Topic</option>';
foreach($row as $row)
{
$result .='<option value="'.$row->id.'">'.ucwords($row->co_topic_name).'</option>';
}
return $result;
}
Я пробовал вот так, но значение второго выпадающего списка не заполняется
<script>
$(document).ready(function(){
$('#subject').val("value from db").attr("selected","selected");
});
</script>