更改另一个选择框值上的选择框在codeigniter中不起作用
Posted
技术标签:
【中文标题】更改另一个选择框值上的选择框在codeigniter中不起作用【英文标题】:changing select box on another select box value not working in codeigniter 【发布时间】:2021-11-22 20:39:02 【问题描述】:我有一个 codeigniter 网站,其中有一个表单供用户选择类别和子类别,当用户选择类别时,子类别下拉列表应相应显示,我执行了以下代码:
public function subcategories()
$category = $this->input->post('category');
$query = $this->db->query('SELECT name FROM subcategory WHERE parentcategory='.$category);
$data['subcategories'] = $query->result_array();
$this->load->view('homecontroller/subcategories', $data);
echo $category;
在 subcategories.php 中
<?php foreach ($subcategories as $c): ?>
<option value="<?php echo $c['name'] ?>"><?php echo $c['name'] ?></option>
<?php endforeach; ?>
在我看来:
$(document).ready(function()
$('#sl_countries').change(function()
$('#sl_cities').load("<?php echo site_url('index.php/homecontroller/subcategories') ?>",
category: $(this).val()
);
);
);
<div class="form-group col-md-6">
<label for="inputEmail4">Product Category</label>
<select id="sl_countries" class="form-control" name="cname" aria-label="Default select example">
<?php
foreach($listcategory as $val)
echo '<option value="'.$val->name.'">'.$val->name.'</option>';
?>
</select>
</div>
<div class="form-group col-md-6">
<label for="inputEmail4">Sub Category</label>
<select class="form-control" name="sname" id="sl_cities"></select>
</div>
但是这不起作用,我在检查控制台时收到如下错误:
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行的 '' 附近使用的正确语法 SELECT name FROM subcategory WHERE parentcategory=
谁能告诉我这里出了什么问题,提前谢谢
【问题讨论】:
你的完整 jquery ajax 代码在哪里? @KUMAR 这只是我的 ajax 代码 请尝试我的答案。 【参考方案1】:这样使用:-
jQuery Ajax 代码:-
<script>
$(document).ready(function()
$('#country').change(function()
var country_id = $('#country').val();
if(country_id != '')
$.ajax(
url:"<?php echo base_url(); ?>dynamic_dependent/fetch_state",
method:"POST",
data:country_id:country_id,
success:function(data)
$('#state').html(data);
$('#city').html('<option value="">Select City</option>');
);
else
$('#state').html('<option value="">Select State</option>');
$('#city').html('<option value="">Select City</option>');
);
);
</script>
控制器代码:-
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Dynamic_dependent extends CI_Controller
function fetch_state()
if($this->input->post('country_id'))
echo $this->dynamic_dependent_model->fetch_state($this->input->post('country_id'));
?>
型号代码:-
<?php
class Dynamic_dependent_model extends CI_Model
function fetch_state($country_id)
$this->db->where('country_id', $country_id);
$this->db->order_by('state_name', 'ASC');
$query = $this->db->get('state');
$output = '<option value="">Select State</option>';
foreach($query->result() as $row)
$output .= '<option value="'.$row->state_id.'">'.$row->state_name.'</option>';
return $output;
?>
查看代码:-
<div class="form-group">
<select name="country" id="country" class="form-control input-lg">
<option value="">Select Country</option>
<?php
foreach($country as $row)
echo '<option value="'.$row->country_id.'">'.$row->country_name.'</option>';
?>
</select>
</div>
<br />
<div class="form-group">
<select name="state" id="state" class="form-control input-lg">
<option value="">Select State</option>
</select>
</div>
【讨论】:
我收到此错误您提交的 URI 包含不允许的字符。 检查你的 base_url 在值中,我想给出名称而不是 id 不给id而不是名字 你也添加 jquery cdn。上面的ajax代码。以上是关于更改另一个选择框值上的选择框在codeigniter中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
JS/jQuery:使用下拉框在另一个字段中设置值,是不是正在更改以前的字段?