ajax не работает в drupal 7 при использовании раздела редактирования

Я также использую drupal-7 и создаю модуль. Форма, в которой есть 2 выпадающих. При выборе модели автомобиля (1-й выпадающий) значение варианта автомобиля (2-й выпадающий) будет меняться. Это отлично работает, когда я создаю новый. Но как только я иду редактировать какое-то значение, оно показывает мне ошибку.

================================================== =========================

Произошла ошибка HTTP AJAX.

Код результата HTTP: 500

Отладочная информация приведена ниже.

Путь: /vehicle_ades/? Q = system / ajax

StatusText: Сервис недоступен (с сообщением)

ResponseText: PDOException: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец "ajax" в "где предложение":

ВЫБЕРИТЕ заголовок, детали,value_of_offer,exchange_offer,total_savings,car_model_id,car_variant_id FROM {va_offer}, где id = ajax; Array ()

================================================== =========================

Как передать идентификатор модели автомобиля в функцию ajax

1 ответ

Я работаю над Drupal 7. Ниже приведен код. То, что я сделал, это при выборе модели автомобиля, вариант автомобиля изменится и данные сохранятся в таблице.

function add_offer_form ($ form, $ formstate) {

$ form ['add_offer_new_car_model'] = array (

'#type' => 'select',
'#required' => TRUE,
'#options' => $car_model,
'#ajax' => array(
    'effect' => 'fade',
    'progress' => array('type' => 'none'),
    'callback' => 'variant_callback',
    'wrapper' => 'replace_variant',
),

);

// Поле со списком для выбора нового варианта автомобиля

$ form ['add_offer_new_car_variant'] = array (

'#type' => 'select',
'#options' => array(),
// The prefix/suffix provide the div that we're replacing, named by #ajax['wrapper'] above.
'#prefix' => '<div id="replace_variant">',
'#suffix' => '</div>',

);

// AJAX-запрос вызывает функцию построителя форм для каждого изменения.

// Мы можем изменить способ создания формы на основе $ form_state.

if (! empty ($ formstate ['values'] ['add_offer_new_car_model'])) {

$model_id = $formstate['values']['add_offer_new_car_model'];
$rows = array();
$result = db_query("SELECT id, variant_name from {va_car_variant} where car_model_id in ($model_id,1) order by variant_name");
while ($data = $result->fetchObject()) {
    $id = $data->id;
    $rows[$id] = $data->variant_name;
}
$form['add_offer_new_car_variant']['#options'] = $rows;

}

}

////////////////////////////////////////////////// ////// ///////// ФУНКЦИЯ ДЛЯ AJAX CALL BACK

функция variable_callback($form, &$form_state) {

вернуть $ form ['add_offer_new_car_variant'];

}

Другие вопросы по тегам