未使用jQuery填充的HTML表单
<script type="text/javascript">
$(document).ready(function() {
$(".edit").click(function(){
temp = $(this).attr('id').split("_");
$.get('/patients/getPlanofCareById', { "id": temp[1]},
function(data){
$('#patient-poc-frm').populate(data);
}, "json");
});
});
</script>
Firebug正在抛出通知,表单元素不存在,但我使用萤火虫看到它们。我相信他们在那里。你会注意到我正在使用jquery发布一个变量并使用json发回结果。未使用jQuery填充的HTML表单
任何
即使表单元素不存在你不应该得到一个错误。 jQuery不能这样工作,这意味着你看到的错误是来自另一段JavaScript代码,或者你忘记了包含jQuery库。
编辑
啊,你正在使用的表单处理程序我明白了。我从来没有使用过它,但我注意到了一些事情:在发送ajax请求之前,您正在根据下划线分割id属性吗?您在JSON中发送的ID属性是后缀。生成的JSON在返回时是否重新添加前缀?否则,如果ID最初类似于“textbox_name”,那么您将搜索ID不存在的ID为“name”的元素。
我正在使用jquery formhandler插件。我收到的通知看起来像没有[] [id]这样的元素。它就像是一个多维数组。那是不对的 – kbrin80 2010-11-08 21:48:34
更新了我的答案。 – 2010-11-08 22:14:34
只适用于那些可能多年来仍然会来这里寻找相同错误的人(像我今天:))。注意kbrin80的评论,他说控制台输出的状态是“没有像[] [id]这样的元素” - 这是提示 - 至少它对我来说是这样。例如我的代码是什么样子:
<?php
$result = $database->select('table', ['colums'], ['id' => $value]);
$json = json_encode($result);
echo $json;
//echoes like: [{id=>value}]
//--> notice the outer pair of brackets, that's an array, you want to get rid of them!
?>
根据脚本
<script type="text/javascript">
jQuery(document).ready(function(){
$('.populate').populate(<?php echo $json; ?>, {debug: 1});
});
</script>
这第一点看起来不错,但所发生的事情是,我忘了,我的DB-框架返回包含在结果数组原因数组 - 即使只有一行返回 - 仍然需要通过获取$ redsult [0]来选择该行。那么这个数组然后变成了json(由{}周围的[]可见并且被赋予到填充的jquery中 - 我们知道这并不起作用,因为在第一个位置填充需要{id => value}而不是[ {} {}} {{}中的数组然后用于多选值)因此,你想要做的是找出你的数据库结果数组中的哪个位置,并将其传递给json编码器,之后进入填入 这样的:??
$result = $database->select('table', ['colums'], ['id' => $value]);
$json = json_encode($result[0]);
echo $json;
//echos like: {id=>value} , you want that to pass through populate correctly
怎么样的标记 – 2010-11-08 21:35:15
了哪些数据是什么,您在getPlanofCareByID返回 – Gazillion 2010-11-08 21:36:13
不是特别有这个好,但究竟什么是“getPlanofCareById”隐而不宣? 'get()需要访问一个页面然后搜索信息? – 2010-11-09 04:57:40