book_form_update()
drupal/modules/book/book.pages.inc, line 235
AJAX callback to replace the book parent select options.
This function is called when the selected book is changed. It updates the cached form (either the node form or the book outline form) and returns rendered output to be used to replace the select containing the possible parent pages in the newly selected book.
$build_id The form's build_id.
$bid A bid from from among those in the form's book select.
Prints the replacement HTML in JSON format.
function book_form_update() {
$cached_form_state = array();
$bid = $_POST['book']['bid'];
if ($form = form_get_cache($_POST['form_build_id'], $cached_form_state)) {
// Validate the bid.
if (isset($form['book']['bid']['#options'][$bid])) {
$book_link = $form['#node']->book;
$book_link['bid'] = $bid;
// Get the new options and update the cache.
$form['book']['plid'] = _book_parent_select($book_link);
form_set_cache($_POST['form_build_id'], $form, $cached_form_state);
// Build and render the new select element, then return it in JSON format.
$form_state = array();
$form['#post'] = array();
$form = form_builder($form['form_id']['#value'] , $form, $form_state);
$output = drupal_render($form['book']['plid']);
drupal_json(array('status' => TRUE, 'data' => $output));
}
else {
drupal_json(array('status' => FALSE, 'data' => ''));
}
}
else {
drupal_json(array('status' => FALSE, 'data' => ''));
}
exit();
}