我正在与codeigniter项目合作,我有一个问题。我试了好几次,但仍然没有解决办法。
我的视图有下拉框。它用数据填充。我需要发送选定的下拉值到控制器然后到模型。不刷新视图
我的看法。: <?php echo base_url(); ?>admin/order/new_order
<form method="post" id="sform" action="">
<select class="form-control pull-right" name="select_design" style="width: 150px;" required id="select_design" onchange="select_design()">
<option value="">Select Design..</option> <?php foreach ($product2 as $v_product) : ?>
<option value="<?php echo $v_product->product_code ?>"><?php echo $v_product->product_code ?></option>
<?php
endforeach;
?>
</select>
</form>
和我已经尝试使用ajax发送选定的值。
<script>
$("#select_design").change(function() {
$.ajax({
url : "<?php echo base_url(); ?>admin/order/new_order", // my controller :<?php echo base_url(); ?>admin/order/new_order
method: "POST",
data: "id=" + $(this).val(),
success: function(response) {
// handle
}
})
});
</script>
和我试图访问POST值在控制器
控制器:<?php echo base_url(); ?>admin/order/new_order()
public function new_order()
{
$select_design=$this->input->post('id'); //
// and send it to model
$data['product'] = $this->order_model->get_all_product_info($select_design);
}
我无法访问控制器中选定的值,请建议。谢谢你
我认为你只需要改变你的Ajax脚本像下面的代码。
$("#select_design").change(function() {
var product_code = $("#select_design").val();
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>" + "admin/order/neworder",
dataType:'text',
data:{product_code:product_code},
success: function() {
//handle
}
});//ajax
});
AJAX应该
<script>
$(function(){
$("#select_design").change(function()
{
var product_code = $("#select_design").val();
$.ajax(
{
type:"post",
url: "<?php echo base_url(); ?>admin/order/new_order",
data:{ product_code:product_code},
success:function(data)
{
}
});
});
});
</script>
你的url包含
admin/order/new_order
也就是说order
控制器在admin
文件夹
和in控制器应该是
public function new_order()
{
$select_design=$this->input->post('product_code'); // not id
$data['product'] = $this->order_model->get_all_product_info($select_design);
}