ajax submit error 500 if invoke form in drupal 7
I created node form in drupal7 and invoked this form in page.tpl template
by drupal_get_form(). Also set form alter for it and set ajax submit whit
callback. it worked in current page of add node but didn't work in other
page that I invoked form. I get "Internal Server Error ResponseText"
<?php
function foo_form_alter(&$form, $form_state, $form_id){
if($form_id == 'fast_order_node_form'){
form_load_include($form_state, 'inc', 'node', 'node.admin');
$form['actions']['submit']['#ajax'] = array(
'wrapper' => 'fast-order-node-form',
'callback' => 'fast_order_node_add_callback',
'method' => 'replace',
'effect' => 'fade'
);
}
}
function fast_order_node_add_callback($form, &$form_state) {
$node = $form_state['node'];
if (!empty($node->nid)) {
// Node is created successfully.
// Return the same from but with empty fields.
$new_node = (object) array(
'uid' => $node->uid,
'name' => $node->name,
'type' => $node->type,
'language' => $node->language,
);
$new_form_state = array();
$new_form_state['build_info']['args'] = array($new_node);
$new_form_state['values'] = array();
$new_form_state['method'] = $form_state['method'];
form_load_include($new_form_state, 'inc', 'node', 'node.pages');
return drupal_rebuild_form($node->type . '_node_form', $new_form_state);
}
else {
// Node is not created because of validation fail.
// Return current form so user can continue editing and fix errors.
return $form;
}
}
?>
No comments:
Post a Comment