有没有办法使用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”
它仍然无法正常工作
答案 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,并且逻辑上不应该设置。
也许代码背后的逻辑也有助于找到解决方案。