Я пытаюсь получить форму узла через ajax в Drupal.Ответ Parseerror при попытке получить данные json через ajax в Drupal
Как правило, я должен был создать кнопку запуска ахаха, которая приносит и отображает красиво данные json. Я сделал это для тестирования, и он работал очень хорошо с PHP-кодом ниже.
Но мне нужно динамически создавать пользовательские связанные с ahah ссылки с javascript. И эти пользовательские ссылки действуют как кнопки ahah и вызывают функцию обратного вызова, которая приносит форму узла.
На стороне сервера функции обратного вызова, которая отправить данные JSON это:
function get_lesson_form($nid) {
global $user;
$node = array('uid' => $user->uid, 'name' => $user->name, 'type' => 'lesson');
$form_id = 'lesson_node_form';
// Initialize settings:
$file = drupal_get_path('module', 'node') . '/node.pages.inc';
include_once './' . $file;
$rendered_form = drupal_get_form($form_id,$node);
$javascript = drupal_add_js(NULL, NULL);
drupal_json(array(
'status' => TRUE,
'data' => $rendered_form,
'settings' => call_user_func_array('array_merge_recursive',$javascript['setting']),
)
);
}
Я посмотрел немного, как в Drupal ahah.js занимается поиском и отображения содержимого JSON и я создал вызов AJAX ниже это просто принимает данные json и добавляет его.
$.ajax({
url : '/fcrp_form/nid',
success : function(response) {
console.log(response);
var form = Drupal.parseJson(response);
var target_wrapper = $('#event-edit-container');
var new_content = $('<div></div>').html(form);
target_wrapper.empty().append(new_content);
Drupal.attachBehaviors($('#event-edit-container'));
},
error : function(response, error) {
console.log(response);
console.log('Error: '+ error);
},
type: 'POST',
dataType: 'json',
});
Проблема заключается в том, что я всегда получать parseerror сообщение и объект ответа, как беспорядок. Я не могу успешно выполнить json-данные, и я не знаю, как эта ошибка произошла.
Примечание: Это происходит, когда $ data имеет html-код. Если он имеет простой текст, он не возвращает никаких ошибок.
Также, когда я тестировал обычную кнопку ahah (путь Drupal), была использована версия jQuery 1.3.2, но в моем случае я использую версию 1.7.2.
Любая помощь была бы действительно оценена.