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 发出表单元素不存在的通知,但我看到它们使用的是 firebug。我确信他们在那里。您会注意到我使用 jquery 发布变量并使用 json 发回结果。

任何

4

2 回答 2

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-Framework 返回一个包含结果数组的数组 - 即使只有一行返回 - 仍然需要选择这一行通过获得 $redsult[0]。好吧,然后这个数组被转换为 json(通过 {} 周围的 [ ] 可见并提供给 populate jquery - 正如我们所知,这不起作用,因为在第一个点 populate 需要 {id=>value} 而不是 [ {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 
于 2013-11-04T19:12:00.093 回答
0

即使表单元素不存在,您也不应该收到错误消息。jQuery 不能这样工作,这意味着您看到的错误要么来自另一段 javascript 代码,要么您忘记包含 jQuery 库。

编辑

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

于 2010-11-08T21:44:26.373 回答