我想将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值
答案 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
}