我的自定义模块expertqa.module
中有以下代码function expertsqa_menu() {
$items = array();
$items['expertsqa/answerquestion'] = array(
'title' => 'Answer question', //page title
'description' => 'A form to mess around with.',
'page callback' => 'drupal_get_form',
'page arguments' => array('expertsqa_answer_form'), //put the name of the form here
'access callback' => TRUE
);
return $items;
}
function expertsqa_answer_form($form, &$form_state) {
drupal_add_js(drupal_get_path('module', 'expertsqa') . '/js/jquery.form.js');
$suffix = '
<script>
jQuery(document).ready(function() {
jQuery(\'#expertsqa-answer-form\').ajaxForm({
target: "#output"
});
});
</script>
';
$form['price'] = array(
'#type' => 'textarea',
'#title' => 'Type Answer',
'#rows' => 5,
'#columns' => 10,
'#required' => TRUE,
'#suffix' => $suffix,
);
$form['submit_button'] = array(
'#type' => 'submit',
'#value' => t('Click Here!'),
);
return $form;
}
function expertsqa_answer_form_submit($form, &$form_state) {
drupal_json_output(array('foo', 'baa'));
drupal_exit();
}
我想通过ajaxform JQuery插件提交表单的内容,该插件工作正常,然后希望它由函数专家qa_answer_form_submit处理,该函数应返回JSON响应。请有人告诉我正确的方法,因为它返回完整的HTML
答案 0 :(得分:2)
您无需包含任何JavaScript即可完成此操作。这是Drupal力量的一部分。
这里要解释很多,而且之前已经完成了。我建议你读这个:
https://drupal.org/node/752056
如果您阅读该文档,我相信您将能够完成您要在此处完成的工作。
长话短说,在一个表单中,你有触发ajax调用的元素,然后是调用它时重新加载的元素。在此过程中,可以重新处理整个form_state。一旦掌握了它,你会发现它非常强大。
如果您将代码更新为正确的Drupal约定,但仍然无法在此处进行回复,我将更新我的回答以帮助您。
祝你好运!