Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Передача переменной в файл php (https://javascript.ru/forum/dom-window/67867-peredacha-peremennojj-v-fajjl-php.html)

Янковиц 12.03.2017 15:30

Передача переменной в файл php
 
Добрый день. Есть форма и ссылка не связанная с формой. При нажатии на ссылку с a href нужно передать значение поля input name="tel" в password.php, скрипт написан на Ajax. Скрипт рабочий. Единственная загвоздка в передаче переменной. Вот какие есть наработки:
Собственно сама форма:
<form id="authf" action="">
  <input type="tel" name="tel" value="a3">
  <a id="repass" href="#" onClick="submit(); return false;">Получить пароль</a>
  <input type="submit">
</form>


И Ajax обработчик:
jQuery(function($) {
	$("#repass").click(function() {
		$(this).text('Отправляю...');
		var str = $(this).serialize();
		$.ajax({
			type: "POST",
			url: "password.php",
			data: ({
				str,
			}),  
			success: function(msg) {
				if(msg == '100') {
					result = '<div class="ok">Пароль отправлен</div>';
					$("#repass").text('Отправить снова');
				}
				else {result = msg;}
				$('#info').html(result);
			}
		});
		return false;
	});
});


Предполагаю, что нужно написать что-то вроде:
data: ({
				str,
				tel: $('#authf input[name=tel]').val()
			}),


а в php:
$usertel = $_POST['tel'];

Но что-то не фурычит

laimas 12.03.2017 16:03

Цитата:

Сообщение от Янковиц
Предполагаю, что нужно написать что-то вроде:

Для чего, если метод .serialize() уже возвращает это поле?

Выбросить вот это:

var str = $(this).serialize();

и

data: ({
str,
})

написав одной строкой и без ошибок:

data: $(this).serialize(),

Янковиц 12.03.2017 16:08

Понял, спасибо. А как на счет передачи переменной?

laimas 12.03.2017 16:13

Цитата:

Сообщение от Янковиц
А как на счет передачи переменной?

Какой переменной, если речь шла о "tel", а это поле формы, которое, как уже было сказано, JQ помещает в запрос?

Янковиц 12.03.2017 16:14

Извините, вообще не понял.

laimas 12.03.2017 16:21

Цитата:

Сообщение от Янковиц
Извините, вообще не понял.

А я значит должен в любом случае понять о какой переменной идет речь даже если сам хозяин этого не понимает?

Янковиц 12.03.2017 16:24

Ааа, вопрос не понял. Нужно передать переменную tel, данные которой берутся из inputa.

laimas 12.03.2017 16:41

Цитата:

Сообщение от Янковиц
Ааа, вопрос не понял. Нужно передать переменную tel, данные которой берутся из inputa.

Нет в полях ввода формы никаких переменных, это свойство value его. Изучайте методы jQ, а если что не понятно, то перед запросом (перед строкой $.ajax({ ) выполнить вот такой код alert($(this).serialize()).
Будут после этого вопросы?

Янковиц 12.03.2017 16:45

Я имею в виду, что нужно взять value из input tel и отправить её в php файл.

Янковиц 12.03.2017 16:49

Будет ли правильно так написать:
var tel = $('#authf input[name=tel]').val();

а потом data: 'tel='+value,
???


Часовой пояс GMT +3, время: 21:58.