繁体   English   中英

CodeIgniter - 如何将值从视图传递到控制器?

[英]CodeIgniter - How to pass a value from a view to a controller?

我想将我从javascript中获取的值传递给控制器​​。 但我不使用任何功能。 我只想访问控制器中视图中的值。 我有以下观点。

<select id="selected_year" name="selected_year" data-live-search="true" style="margin-left: 27px;" >           
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
<option value="2023">2023</option>
<option value="2024">2024</option>
</select>

我使用以下javascript获取下拉值。

<script type="text/javascript">
    $("#selected_year").live('change', function() {
        var selected_year = $(this).attr("value");

       alert(selected_year);
       window.location.reload(); 

    });
</script>

我想把我从上面的javascript中获得的值传递给控制器​​。 有可能吗?

您可以通过发送POST请求来完成此操作,该请求将被分派到控制器操作(同步或异步,具体取决于您的需要)或将其作为查询字符串传递到URL中,然后检查它是否存在于您的控制器中。

您可以通过三种方式将数据表单视图发送到控制器

1.POST ,GET(form submitio).
2.making it in link(URi segment)
3.via Ajax

您可以使用AJAX在每次用户更改下拉列表时提交

var data = $('#selected_year').val();

     $("selected_year").on('change',function(){

     $.ajax({
        url: yourcontroller,
        type: 'POST',
        data: data,
        success: function (data) {

        },
    });

    });

创建一个控制器以提供URL的动态部分。

<script type="text/javascript">
$("#selected_year").live('change', function() {
    var selected_year = $(this).attr("value");

    // NEXT 2 LINES ARE THE SOLUTION. substitute your own controller URL on the next line.
    $url = '<?= base_url()index.php/controller/method?>/'+selected_year+'';
    window.location.reload($url); 

});
</script>

这是你的控制器:

function method($year){
     echo $year;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM