如何将选定的选项id值传递给codeigniter控制器

时间:2014-06-03 14:06:13

标签: javascript codeigniter

我想将id中的选定选项值传递给codeigniter控制器。

<p>
        <select id="quantity" name="quantity" tabindex="2" onchange="calculate(this)" required autofocus>
            <option value="">Choose Your Quantity</option>
            <?php
                if($prodqty)
                {
                    foreach($prodqty as $qty)
                    {
                        for($i = $qty->quantity_from; $i <= $qty->quantity_to; $i++)
                        {   
            ?>
            <option value="<?=$i?>" id="<?=$qty->discount?>"><?=$i?></option>
            <?php } } } ?>
        </select>
      </p>

我已经选择了选项值,现在我想获得id值,即id =“discount?&gt;”

function add_cart_prod()
{
    if(isset($_POST['submit']))
    {

这是控制器,我想获得id值

3 个答案:

答案 0 :(得分:0)

如果你通过POST提交数据,我想,因为你测试了POST数组,你应该这样做:

$this->input->get_post('quantity');

但也许您在HTML中使用了表单提交选项GET,那么这应该可行:

$this->input->get('quantity');

如果要同时获取两个值XSS-clean,则应添加第二个参数,该参数设置为TRUE:

$this->input->get_post('quantity',TRUE);

如下所述,您应该将选项的值更改为:

<option value="<?=$i?>_<?=$qty->discount?>"><?=$i?></option>

然后用这个char爆炸数组:“_”得到两个值:

$valuearray = explode ( "_" , $this->input->get_post('quantity'));

$ valuearray [0]应该包含你的$ i-part和$ valuearray [1]折扣。

重要的是,delimiter-char不能是$ i或$ qty-&gt;折扣的值。否则选择一个不同的字符

答案 1 :(得分:0)

你应该试试这个,也许它会起作用,在calculate(this)函数内部:

var discount = $("select[name='quantity'] option:selected").attr('id');
alert( discount );
$("#discount").val( discount ); //this will save the discount value in the hidden field

修改

在表单中放置一个隐藏字段以包含折扣值

<input type="hidden" name="discount" id="discount">

现在,像往常一样提交表格。希望它有所帮助。

答案 2 :(得分:0)

对选项选择的更改事件使用ajax调用:

只是改变了你的代码:

<select id="quantity" name="quantity" tabindex="2" onchange="calculate(this)" required autofocus>
            <option value="0">Choose Your Quantity</option>
            <?php
                if( !empty($prodqty)):
                 foreach($prodqty as $qty):
                        for($i = $qty->quantity_from; $i <= $qty->quantity_to; $i++): ?>
                         <option value="<?php echo $i?>" id="<?php echo $qty->discount?>"><?php echo $i?></option>
                        <?php endfor;
                    endforeach;
                  endif; ?>
        </select>

你的javascript函数:

<script type="text/javascript">

function calculate(id)
{
    var id=id;
    $.ajax({
            type:'POST',
            url:'your controller/add_cart_prod',
            data:{'id':id},
            success:function(data){
                // the next thing you want to do 
            }
        });
}
</script>

您的控制器功能:

function add_cart_prod()
{
 $id=$this->input->post('id',true);

 //send this value to your model 
}