将隐藏的输入数组传递给jquery load()

时间:2013-09-23 02:54:10

标签: javascript php jquery codeigniter

我试图将包含数组的隐藏输入类型发送到我的jquery load(函数)但是我无法使其工作

table_planner.php

foreach($category->result() as $c){
    <input type="hidden" name="tname[]" id="tname[]" value="<?php echo $c->name;?>" />
}

<div id="planner">
<!--load content goes here-->
</div>

的script.js

var tname = $("#tname").val();
console.log(tname);
$('#planner').load(base+"site/table_planner/"+tname)

控制器

public function table_planner($tname="")
{
    if($tname){
    $data['category'] = $this->site_model->get_category();
    }
    else{
    $data['category'] = $tname;
    }

    $this->load->vars($data);
    $this->load->view("site/ajax/table_planner");   
}

我想要发生的是

    来自table_planner.php的
  1. - id为tname []的隐藏输入的值将发送到我的script.js
  2. 来自script.js的
  3. 变量tname将被发送到我的控制器中的table_planner
  4. 问题开始于我的script.js无法获取我的隐藏输入值的值,因为console.log(tname)表示它未定义但是如果我在table_planner.php中回显它的值它包含一个值< / p>

    有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

tname[]是什么?

html中的ID为tname[]

<input type="hidden" name="tname[]" id="tname[]" ...

但你的js是#tname

var tname = $("#tname").val();
console.log(tname);

将html中的id更改为tname

<input type="hidden" name="tname[]" id="tname" value="<?php echo $c->name;?>" />


更新以传递整个数组

$tname = '';
foreach($category->result() as $c){
   $tname .= '&tname[]=' . $c;
}
// $tname will be like &tname[]=cake&tname[]=food...

将其设为html:

<input type="hidden" name="tname" id="tname" value="<?php echo $tname;?>" />

在js中,调用网址base+"site/table_planner/"

var tname = $("#tname").val();
console.log(tname);
$('#planner').load(base+"site/table_planner/?"+tname)
在网址base+"site/table_planner/"中,必须有一个php文件来处理请求:

var_export($_GET);

您会看到tname是一个数组。