将jQuery load()函数变量传递给codeigniter控制器

时间:2013-09-10 11:14:02

标签: php jquery codeigniter

有没有办法使用jquery的load()函数将变量传递给codeigniter控制器?

目前这是我的非工作代码

main.php

<input type="hidden" id="url" name="url" value="<?php echo base_url();?>site/pax_dropdown/" /> 
<input type="hidden" val="2" id="value"> 

<ul id="result" class="dropdown-menu">
    <?php $this->load->view("site/pax_dropdown"); ?>
</ul>

pax_dropdown.php

<li><a href="">3</a></li>
<li><a href="">4</a></li>
<li><a href="">5</a></li>
<li><a href="">6</a></li>
<li><a href="">7</a></li>
<li><a href="">8</a></li>
<li><a href="">9</a></li>

<?php 
echo $id; 
?>

的script.js

var url = $("#url").val();
var val = $("#value").val();
$('#result').load(url,val);

控制器

public function pax_dropdown($id)
    {
        $data['id'] = $id;
        $this->load->vars($data);
        $this->load->view("site/pax_dropdown"); 
    }

使用此代码,pax_dropdown.php成功加载到

<ul id="result"> 

在我的main.php中但是找不到我的测试变量$ id并且说消息:未定义的变量:id 我做错了什么?


顺便说一下,我也尝试用这种方式将变量发送到控制器:

<input type="hidden" id="url" name="url" value="<?php echo base_url();?>site/pax_dropdown/2" /> 

我把变量放在url的末尾,在这种情况下是“2”

它仍然无法正常工作

3 个答案:

答案 0 :(得分:1)

请查看此示例以使用jQuery.load()传递变量:

var siteName='example.com';
$("#result").load(sitename+"/site/pax_dropdown/2", {"variableName": variable});

答案 1 :(得分:0)

试试这个:

$(function(){
    var url = $("#url").val();
    var val = $("#value").val();
    $("#result").load(url, {id: val});
});

function pax_dropdown()
{
    $data['id'] = $this->input->post('id');
    $this->load->vars($data);
    $this->load->view("site/pax_dropdown"); 
}

并且

<ul id="result" class="dropdown-menu">
<?php //$this->load->view("site/pax_dropdown"); comment out this line ?>
</ul>

答案 2 :(得分:-1)

你没有默认ID吗?如果是这样,请将其设置为$ id。如果你不想要任何默认数字,只需将它包装成一个if语句(如果(isset($ id)),如果没有设置,则不要使用$ id,并且逻辑上不应该设置。

也许代码背后的逻辑也有助于找到解决方案。