Есть вот такой код и он работает:
form.submit(function () {
var data = {
action: 'mig', // Указываем action который будет обрабатывать
// Записываем значения полей. В проекте их гораздо больше и это сильно загромождает код
name: $(this).find('input[name="message_name"]').val(),
tel: $(this).find('input[name="message_tel"]').val(),
};
// Использую для проверки alert
$.post( mig.ajaxurl, data, function (r) {
alert(r)
});
return false;
});
<?php
add_action('wp_ajax_mig', 'mig_mail');
add_action('wp_ajax_nopriv_mig', 'mig_mail');
function mig_mail (){
$name = !empty($_POST['name']) ? "Имя: " . trim($_POST['name']) . "\n" : "";
$tel = !empty($_POST['tel']) ? "Телефон: " . trim($_POST['tel']) . "\n" : "";
$message = "$name$tel";
echo $message; // Использую для проверки
wp_die();
}
Однако в реальном проекте полей больше и я хочу использовать .serialize()
, чтобы код выглядел как-то так:
form.submit(function () {
var data = {
action: 'mig',
data: $(this).serialize(), // Удобная красивая запись. При возможном изменении полей в будущем можно будет сюда не лезть
};
$.post( mig.ajaxurl, data, function (r) {
alert(r)
});
return false;
});
<?php
add_action('wp_ajax_mig', 'mig_mail');
add_action('wp_ajax_nopriv_mig', 'mig_mail');
function mig_mail (){
$name = !empty($_POST['name']) ? "Имя: " . trim($_POST['name']) . "\n" : "";
$tel = !empty($_POST['tel']) ? "Телефон: " . trim($_POST['tel']) . "\n" : "";
$message = "$name$tel"; // Пустая строка
echo $_POST['data']; // Вернет строку,
// например "message_tel=%2B7(215)364-75-86¤t_services=&submitted=1"
// Как правильно достать нужные значения?
wp_die();
}
Используйте urldecode
и parse_str
function mig_mail (){
$data = urldecode( $_POST['data'] );
parse_str( $data, $arr );
echo $arr['message_name'];
echo $arr['message_tel'];
wp_die();
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
В результате выполнения кода в БД появляется сразу два новых узла, как будто команда push() выполняется два разаВ консоль сообщение с nameOfUser...
Не могу понять в чем ошибка, по итогу выдает пустой алерт, и соответственно в файл пхп тоже ничего не приходит, но до файла запрос доходит,...
Такой вопрос,я в менюшке сделал,для невидимых элементов вместо dislay: none, visibility:hidden, при наведении на li менюшки вылезает еще одна с visibility:visible,...