2010-11-08 61 views
0
<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表单

任何

+1

怎么样的标记 – 2010-11-08 21:35:15

+0

了哪些数据是什么,您在getPlanofCareByID返回 – Gazillion 2010-11-08 21:36:13

+0

不是特别有这个好,但究竟什么是“getPlanofCareById”隐而不宣? 'get()需要访问一个页面然后搜索信息? – 2010-11-09 04:57:40

回答

0

即使表单元素不存在你不应该得到一个错误。 jQuery不能这样工作,这意味着你看到的错误是来自另一段JavaScript代码,或者你忘记了包含jQuery库。

编辑

啊,你正在使用的表单处理程序我明白了。我从来没有使用过它,但我注意到了一些事情:在发送ajax请求之前,您正在根据下划线分割id属性吗?您在JSON中发送的ID属性是后缀。生成的JSON在返回时是否重新添加前缀?否则,如果ID最初类似于“textbox_name”,那么您将搜索ID不存在的ID为“name”的元素。

+0

我正在使用jquery formhandler插件。我收到的通知看起来像没有[] [id]这样的元素。它就像是一个多维数组。那是不对的 – kbrin80 2010-11-08 21:48:34

+0

更新了我的答案。 – 2010-11-08 22:14:34

1

只适用于那些可能多年来仍然会来这里寻找相同错误的人(像我今天:))。注意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