我试图将包含数组的隐藏输入类型发送到我的 jquery load(function),但是我在使其工作时遇到困难
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)
Controller
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 - id 为 tname[] 的隐藏输入的值将发送到我的 script.js
- 从 script.js 中,变量 tname 将被发送到我的 Controller 中的 table_planner
问题始于我的 script.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中,调用urlbase+"site/table_planner/"
var tname = $("#tname").val();
console.log(tname);
$('#planner').load(base+"site/table_planner/?"+tname)
urlbase+"site/table_planner/"
中,必须有一个php文件来处理请求:
var_export($_GET);
您将看到tname
是一个数组。
关于javascript - 将隐藏的输入数组传递给 jquery load(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18951128/