Ошибка с Ajax формой

Главные вкладки

Аватар пользователя deodren deodren 16 ноября 2014 в 2:39

Уважаемые форумчане, есть вопрос. Написал аякс-функцию, которая отрабатывает по нажатию на кнопку. На этой же странице есть динамический выбор из двух таксономий, при выборе одной, отсеиваются нужные термины другой (тоже на аякс).
Если несколько раз нажать на кнопку, а потом выбрать термин из первого словаря, то аякс отрабатывает столько раз, сколько нажал на кнопку до этого. И выбор во второй селектор больше не отрабатывает. Кто скрипта кнопки привожу:

<?php

function zakinsert_form_alter(&$form$form_state$form_id){
if ((
strpos($form_id,'_node_form') !== false)) {
    
$form['field_zakluchenie']['#prefix'] = '<div id="zakluchenie">';
    
$form['field_zakluchenie']['#suffix'] = '</div>';   
    
$form['field_zakluchenie']['avto'] = array(
      
'#type' => 'button',
      
'#executes_submit_callback' => FALSE,
      
'#limit_validation_errors' => array(),
      
'#value' => t('Автоматически'),
      
'#ajax' => array(
       
'callback' => 'zakinsert_term_callback',
      
'wrapper' => 'zakluchenie',
      
'method' => 'replace',
      
'effect' => 'fade',
      ),
    );
}
}

function 

zakinsert_term_callback($form$form_state) {
 
$res='';

 

$query db_select('field_data_field_diag2''f'); 
    
$query->join('field_data_field_zk''n''f.entity_id = n.entity_id');
 
$query->fields('n', array('field_zk_value'))
  ->
condition('field_diag2_target_id'$form_state['values']['field_diag2']['und'], '=') ;
  
$result $query->execute();
        
    while (
$record $result->fetchAssoc()) { 
 
$res $record['field_zk_value']; 
  }

$form['field_zakluchenie']['und'][0]['value']['#value'] = $res;

return 

$form['field_zakluchenie'];
}

      

?>

Косяк явно в нем, так как когда нажимаю на кнопку, крутится значек отработки аякса, но страница все равно перезагружается. Где я накосячил?

Комментарии

Аватар пользователя deodren deodren 16 ноября 2014 в 2:43

Добавлю, что этим я добавляю дополнительную кнопку в форму редактирования материала, чтобы автозаполнять одно из полей. Не в этом ли косяк, что в форме 2 кнопки сабмита, хотя у этой я вроде бы сабмит отключил.

Аватар пользователя deodren deodren 17 ноября 2014 в 8:49

Попробую перефразировать свою проблему, может кто-то сможет подсказать. Есть форма добавления/редактирования материала. В нее, у одного из полей ввода (textarea) нужно добавить кнопку (ссылку, не важно что), по нажатию на которую это поле должно автоматически заполниться, без перезагрузки страницы. Заранее спасибо за любые полезные комментарии.

Аватар пользователя deodren deodren 17 ноября 2014 в 14:14

Все уже перепробовал, не знаю в чем дело. Страница такое ощущение не перезагружается, просто значок на вкладке браузера крутится и скрип отрабатывает. Не понятно, почему если вызвать повторно на этой странице динамический селект (реализован с помощью DDF), то он отрабатывает уже дважды. Еще клик на моей кнопке, и он отрабатывает трижды и уже не корректно, т.е. в подчиненное поле данные уже не попадают.

Аватар пользователя deodren deodren 18 ноября 2014 в 0:30

Похоже я тут сам с собой говорю. Попробовал этот скрипт на форме, в которой не используется DDF, все отработало как надо. Значит какой-то конфликт именно с этим модулем. Теперь бы найти какой))