Показать сообщение отдельно
  #1 (permalink)  
Старый 24.10.2018, 01:32
Аспирант
Отправить личное сообщение для Chmil Посмотреть профиль Найти все сообщения от Chmil
 
Регистрация: 07.07.2017
Сообщений: 41

Не могу передать данные из формы в php
Здравствуйте уважаемые, не получается решить простую задачу, мне нужно передать данные полей 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); // выводим ответ сервера
					}
				});
			});
		});


Прошу помочь разобраться, спасибо
Ответить с цитированием