Невозможно заполнить форму с помощью ajax и заполнить плагин jquery - PullRequest
1 голос
/ 07 декабря 2009

Я пытаюсь заполнить форму с помощью плагина заполнения jquery, но использую $ .ajax

Идея состоит в том, чтобы извлечь данные из моей базы данных в соответствии с идентификатором в ссылках (например, link: get_result_edit.php? Id = 34), переформулировать их в json, вернуть на мою страницу и заполнить форму с помощью заселить плагин. Но почему-то я не могу заставить его работать. Любые идеи:

вот код:

 $('a').click(function(){
     $('#updatediv').hide('slow');
     $.ajax({
      type: "GET",
      url: "get_result_edit.php",
      success: function(data)
               {
                                   var $response=$(data);
                                   $('#form1').populate($response);                                         
                               }
            });
     $('#updatediv').fadeIn('slow');
     return false;

в то время как php-файл выглядит следующим образом:

<?php
$conn = new mysqli('localhost', 'XXXX', 'XXXXX', 'XXXXX');
@$query = 'Select * FROM news WHERE id ="'.$_GET['id'].'"';

$stmt = $conn->query($query) or die ($mysql->error());
if ($stmt) 
  { 

     $results = $stmt->fetch_object(); // get database data
    $json = json_encode($results); // convert to JSON format
      echo $json;

      }


?>

Теперь, во-первых, mysql возвращает ноль таким образом: что-то не так с объявлением оператора sql в части $ _GET? Во-вторых, даже если я поставлю конкретную запись, чтобы заполнить, заполнение не заполнится.

Обновление:

Я изменил заполненную библиотеку на библиотеку с именем «Вспомогательные функции PHP jQuery», и разница в том, что, наконец, она что-то говорит. наконец я получаю сообщение об ошибке, говоря, что ЭТОГО ЭЛЕМЕНТА НЕТ я заглянул в библиотеку, чтобы посмотреть и поднять следующую функцию

function populateFormElement(form, name, value)
{
    // check that the named element exists in the form
    var name = name; // handle non-php naming
    var element = form[name];
    if(element == undefined)
    {
        debug('No such element as ' + name);
        return false;
    }

    // debug options                
    if(options.debug)
    {
        _populate.elements.push(element);
    }
}

Теперь, глядя на это, можно увидеть, что оно должно распечатать также имя, но оно не печатает его. так что я предполагаю, что получение имени от JSON не работает правильно.

Ссылка на http://www.ocdmonline.org/michael/edit_news.php с именем пользователя: Тестирование и прохождение: test123 Есть идеи?

Ответы [ 2 ]

0 голосов
/ 27 декабря 2009

Попробуйте imPagePopulate (другой плагин jquery). Это может быть проще в использовании:

http://grasshopperpebbles.com/ajax/jquery-plugin-impagepopulate/

0 голосов
/ 07 декабря 2009

Сначала вы должны установить опцию dataType для вызова .ajax в json:

$. Ajax ({dataType: 'json', ...

и тогда в вашей функции успеха параметр «data» уже будет объектом, так что вы просто используете его, не нужно ничего с ним делать (я не знаю, почему вы конвертируете его в объект jQuery в своем коде ).

редактирование:

$( 'a' ).click ( function () {
 $( '#updatediv' ).hide ( 'slow' );

 $.ajax ( {
  type: "GET",
  url: "get_result_edit.php",
  success: function ( data ) {
   $( '#form1' ).populate ( data );
  },
  dataType: 'json'
 } );

 $( '#updatediv' ).fadeIn ( 'slow' );
 return false;
}

также рассмотрите возможность использования $ .getJSON вместо $ .ajax, чтобы вам не пришлось беспокоиться о dataType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...