im 试图将包含数组的隐藏输入类型发送到我的 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>
脚本.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");
}
我想要发生的是
- from table_planner.php - ID 为 tname[] 的隐藏输入的值将发送到我的脚本.js
- 从脚本.js变量 tname 将被发送到我的控制器中的table_planner
问题从我的脚本开始.js无法获取我的隐藏输入值的值,因为 console.log(tname) 说它未定义,但如果我在 table_planner.php 中回显出它的值,它包含一个值
有没有办法做到这一点?
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 中,调用 URL base+"site/table_planner/"
var tname = $("#tname").val();
console.log(tname);
$('#planner').load(base+"site/table_planner/?"+tname)
在 URL base+"site/table_planner/"
中,必须有一个 PHP 文件来处理请求:
var_export($_GET);
您将看到tname
是一个数组。