1

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

目前这是我的非工作代码

主文件

<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; 
?>

脚本.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”

它仍然没有工作

4

3 回答 3

1

查看此示例以使用以下方式传递变量jQuery.load()

var siteName='example.com';
$("#result").load(sitename+"/site/pax_dropdown/2", {"variableName": variable});
于 2013-09-10T12:04:46.627 回答
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>
于 2013-09-10T11:17:52.103 回答
-1

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

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

于 2013-09-10T11:22:19.523 回答