Drupal 7 HTTP AJAX ошибка, код HTTP 200 и недействительные учетные данные POST

В настоящее время я работаю с Drupal 7 API формы, но я получаю эту ошибку при первой отправке формы:

Ошибка AJAX

в Drupal логи у меня есть Invalid POST form data,

И когда я отправляю свою форму снова, я делаю НЕ есть ошибка AJAX, и форма, наконец, имеет свое нормальное поведение.

Вот код моей формы:

<?php

function test_module_form($form, &$form_state) {

$form['title'] = array(
'#markup' => '<h4>Me faire rappeler gratuitement par un Conseiller</h4>'
);


$form['phone'] = array(
'#type' => 'textfield',
'#attributes' => array(
'placeholder' => array('Votre numéro de téléphone'),
),
);

$form["wrapper"] = array("#markup" => "<div id='ajax-messages'></div>");

$form["submit"] = array(
"#type" => "submit",
"#value" => t("Send"),
"#ajax" => array(
"callback" => "test_module_form_callback",
"wrapper" => "ajax-messages",
"effect" => "fade",
),
);

return $form;
}

Функция обратного вызова:

function test_module_form_callback($form, &$form_state) {
if (count(form_get_errors()) == 0){
$ajax_commands = array();
$ajax_commands[] = ajax_command_invoke('#ajax-messages', 'hide');
$ajax_commands[] = ajax_command_invoke('#edit-submit', 'hide');
$ajax_commands[] = ajax_command_before('#edit-submit','<p class="submit-success">Votre demande est enregistrée, un Conseiller va prendre contact avec vous.<p>');
$ajax_commands[] = ajax_command_before('#edit-submit',"<script>ga('send', 'event', 'toolbar_callback', 'saisie-tel','validation');</script>");
return array('#type' => 'ajax', '#commands' => $ajax_commands);
}

else {
return $form["wrapper"];
}
}

Hook_form_validate:

function test_module_form_validate($form, &$form_state) {
$phone = $form_state['values']['phone'];

if ($phone == '') {
form_set_error('phone', 'Veuillez inscrire un numéro de téléphone');
}

else if (!is_numeric($phone)) {
form_set_error('phone', 'Le numéro de téléphone saisi est incorrect');
}
}

Кто-нибудь знает, откуда может возникнуть проблема и как ее решить?

Большое спасибо за вашу помощь 🙂

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]