Здравствуйте уважаемые, не получается решить простую задачу, мне нужно передать данные полей html-формы в php-скрипт, там обработать и вернуть новые значения. Нужно чтобы страница не перегружалась. Приложение (онлайн конвертер) делаю как плагин для вордпреса, два файла js и php находятся в одной папке. Форма на страницу добавляется шорткодом. У меня кое-что получилось, но скрипт не хочет передавать данные ни в какую, поэтому прошу вашей помощи, ниже код:
Часть php-файла:
//получаем ссылку на файл для html-формы
function request_url()
{
$result = ''; // Пока результат пуст
$default_port = 80; // Порт по-умолчанию
// А не в защищенном-ли мы соединении?
if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=='on')) {
// В защищенном! Добавим протокол...
$result .= 'https://';
// ...и переназначим значение порта по-умолчанию
$default_port = 443;
} else {
// Обычное соединение, обычный протокол
$result .= 'http://';
}
// Имя сервера, напр. site.com или www.site.com
$result .= $_SERVER['SERVER_NAME'];
// А порт у нас по-умолчанию?
if ($_SERVER['SERVER_PORT'] != $default_port) {
// Если нет, то добавим порт в URL
$result .= ':'.$_SERVER['SERVER_PORT'];
}
// Последняя часть запроса (путь и GET-параметры).
$result .= $_SERVER['REQUEST_URI'];
// Уфф, вроде получилось!
return $result;
}
add_shortcode('lbkggetfishbychmil', 'lb_kg_getfish');
function lb_kg_getfish($atts) {
wp_enqueue_script('lb-kg-script', plugins_url('lb-kg.js', __FILE__), array('jquery'));
wp_enqueue_style('lb-kg-styles', plugins_url('style.css', __FILE__));
echo '<div class="form-lb-kg">';
echo '<form action="' . request_url() . '" method="POST" id="lbkg_form">';
echo '<fieldset>';
echo '<legend>Онлайн конвертер (фунты & килограммы)</legend>';
echo '<p><input type="kg" id="kg" placeholder="кг"></p>';
echo '<p><input type="lb" id="lb" placeholder="lb"></p>';
echo '<input id="btn_submit" type="button" value="Посчитать" />';
echo '</fieldset>';
echo '</form>';
echo '<div class="messages"></div>';
echo '</div>';
}
if (isset($_POST["kg"])) {
$arr = array('result' => '123456789');
echo json_encode($arr);
}
Файл javascript
:
jQuery(document).ready(function($){
$('#btn_submit').click(function(){
//берем из формы метод передачи данных
var m_method=$('#lbkg_form').attr('method');
//получаем адрес скрипта на сервере, куда нужно отправить форму
var m_action=$('#lbkg_form').attr('action');
// отправляем данные
$.ajax({
type: m_method,
url: m_action,
dataType: "json", // тип передачи данных
data: $("lbkg_form").serialize(),
// после получения ответа сервера
success: function(data){
$('.messages').html(data.result); // выводим ответ сервера
}
});
});
});
Прошу помочь разобраться, спасибо