![](/img/trans.png)
[英]changing select box on another select box value not working in codeigniter
[英]Changing value of selectbox on change event of another select box from database in codeigniter
我有一個查看文件
<select name="tournaments" id ="tournaments" class="form-control">
<?php foreach ($tournaments as $tournament): ?>
<option value="<?php echo $tournament->TournamentID ?>"><?php echo $tournament->TournamentName ?></option>
<?php endforeach ?>
</select>
劇本
<script type="text/javascript">
$(document).ready(function(){
var initial_target_html = '<option value="">Please select a Tournament...</option>'; //Initial prompt for target select
$('#matches').html(initial_target_html);
$("#tournaments").change(function(e){
e.preventDefault();
var data = ($("#tournaments").val());
$('#matches').html('<option value="">Loading...</option>');
$.ajax({
type:"POST",
dataType: 'json',
url:"<?php echo base_url('admin/dashboard/update_match_box') ?>",
data: {tournament:data},
success: function(data) {
}
});
});
});
</script>
控制器功能是
public function update_match_box()
{
$sql = "Some query"
$query = $this->db->query($sql);
$json= $query->result();
$this->output->set_content_type('application/json')
->set_output(json_encode($json));
}
控制器文件將返回多行,我需要在ajax成功事件中捕獲該行並相應地更新第二個選擇框,我應該怎么做?
您應該看一下form_helper文件,其中有許多有用的功能可用於構建表單輸入,您所需要做的就是加載此幫助程序:在application / config / autoload.php中,轉到“ helper”並添加該幫助程序名稱如下:
$autoload['helper'] = array('form');
接下來,轉到您的視圖文件並更改此內容:
<select name="tournaments" id ="tournaments" class="form-control">
<?php foreach ($tournaments as $tournament): ?>
<option value="<?php echo $tournament->TournamentID ?>"><?php echo $tournament->TournamentName ?></option>
<?php endforeach ?>
</select>
對此:
<?php
// $tournaments must me an array, use ->result_array() instead of ->result_object()
$tournaments = array_column($tournaments, 'TournamentName', 'TournamentID');
echo form_dropdown('tournaments', $tournaments, '', 'id="tournaments" class="form-control")
?>
對於成功的回調函數,可以使用$ .each或just for循環來提取每個元素並為select輸入創建選項:
$.ajax({
type:"POST",
dataType: 'json',
url:"<?php echo base_url('admin/dashboard/update_match_box') ?>",
data: {tournament:data},
success: function(data) {
$('select#secondSelect').html('');
$.each(data, function(item) {
$("<option />").val(item.id)
.text(item.name)
.appendTo($('select#secondSelect'));
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.