HTML-форма не заполняется с помощью JQuery - PullRequest
0 голосов
/ 09 ноября 2010
<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.

Любой

Ответы [ 2 ]

1 голос
/ 04 ноября 2013

Только для людей, которые, вероятно, все еще приходят сюда спустя годы и ищут ту же ошибку (как я сегодня :)). Обратите внимание на комментарий 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 (видимый [] вокруг {} и переданный в заполненный jquery - который, как мы знаем, не работает, потому что в первом месте заполнение ожидает {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 
0 голосов
/ 09 ноября 2010

Даже если элементы формы не существуют, вы не должны получить ошибку. jQuery не работает так, что означает, что вы видите ошибки, происходящие из другого фрагмента кода javascript, или вы забыли включить библиотеку jQuery.

EDIT

Ах, вы используете обработчик форм, который я вижу. Я никогда не использовал его, но кое-что заметил: перед тем, как отправлять запрос ajax, вы разделяете атрибут id на правильное подчеркивание, верно? И свойство ID, которое вы отправляете в JSON, является суффиксом. Полученный JSON добавляет префикс обратно при возврате? В противном случае, если идентификатор изначально был чем-то вроде «textbox_name», вы будете искать элемент с идентификатором «name», который не будет существовать.

...