Error message

User warning: The following theme is missing from the file system: responsive_green. For information about how to fix this, see the documentation page. in _drupal_trigger_error_with_delayed_logging() (line 1143 of /var/www/moscovie.com/includes/bootstrap.inc).

Перезагрузка форм на AJAX в Drupal 7

На примере панели в уберкарт


function mymodule_uc_order_pane() {
$panes['payment_asd'] = array(
'title' => t('textfield'),
'class' => 'pos-left-text',
'callback' => 'mymodule_pane_callback',
'weight' => 6,
'desc' => '23242',
'show' => array('view'),
);

return $panes;
}

//Возвращаем кастомную форму в наш pane
function mymodule_pane_callback($op, $order, &$form = NULL, &$form_state = NULL){
switch($op){
case 'view':
$output = drupal_render(drupal_get_form('custom_ajax_form',$order));
break;
}
$build['output'] = array(
'#prefix' => $output,
);
return $build;
}

//описание формы
function custom_ajax_form($form, &$form_state, $order){

$form['custom_ajax'] = array(
'#title' => 'test title',
'#type' => 'textfield',
'#prefix' => '

',
'#suffix' => '

',

);

//Если отправка произошла присваиваем значение возвращаемое скриптом
if (isset($form_state['values']['custom_ajax'])) {
$type = $form_state['values']['custom_ajax '];
}
else {
$type = $order->field_test['und'][0]['value'];
}

//Значение по умолчанию в зависимости от того было отправлено или нет
$form['custom_ajax']['#default_value'] = $type;

$form['custom_ajax_submit'] = array(
'#title' => 'test title',
'#type' => 'submit',
'#value'=> 'submit',
'#ajax' => array(
'callback' => 'form_ajax_form_load',
'wrapper' => 'form-ajax',
'method' => 'replace',
'effect' => 'fade',
),
);
return $form;
}

function form_ajax_form_load($form, $form_state) {
// Возвращаем элемент формы, который должен быть перезагружен.
return return $form['custom_ajax'];
}

//Производим необходимые действия и выполняем без перезагрузки
function custom_ajax_form_submit($form, &$form_state){
$val = $form_state['values']['custom_ajax'];
db_query("
update field_data_field_test
set
field_asd_value = '$val'
where entity_id = 1;
");

}

Категория: 
The code has been tested and works
Мультитег: