Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Передать значение переменной из js в php (https://javascript.ru/forum/dom-window/69122-peredat-znachenie-peremennojj-iz-js-v-php.html)

mgq 31.05.2017 13:53

Передать значение переменной из js в php
 
Доброго времени суток! Недавно понадобилось передать значение переменной из js в php, решил использовать ajax:
$(document).ready(function () {
	ymaps.ready(function () {
		var geolocation = ymaps.geolocation;
		var region = geolocation.region; 
                // console.log(city);
		$.ajax({
			url: "product_default.php",
			type: "POST",
			data: {region:region}
		});
	});
});


Вот только дебаг показывает, что значение переменной null
$zatestim = $_POST['region'];
function console_log( $dataS ){
  echo '<script>';
  echo 'console.log('. json_encode( $dataS ) .')';
  echo '</script>';
}

console_log( $zatestim  );

Помогите разобраться в чем ошибка:(
PS весь код в одном файле, jquery и yandex api подключены

ksa 31.05.2017 14:41

Цитата:

Сообщение от mgq
Помогите разобраться в чем ошибка

Недавно где-то встречал подобную проблему... Но пока не нашел ссылки на нее. :(
Там писали про еще одно свойство метода ajax()... Там оно было указано не правильно. А у тебя его совсем нет.

Отправляй строкой. ;)
var ob = {
		'id':3
	}

$(".for_button").click(function() {
		$.ajax({
			
			type:'POST',
			url:'index.php',
			dataType:'json',
			data:"param="+JSON.stringify(ob),
			success:function(html) {
$("<p class='for_content'>" + html['title'] + "</p>").
						prependTo(".content").
						hide().
						fadeIn(500);
			}
		});
		
	});

https://webformyself.com/peredacha-z...hp-i-naoborot/

ksa 31.05.2017 14:48

Вот эта тема! :dance:
http://javascript.ru/forum/jquery/69...na-server.html

mgq 31.05.2017 15:55

Спасибо за ответ!
Сделал так:
$(document).ready(function() {
			ymaps.ready(function() {
				var geolocation = ymaps.geolocation;
				var region = ymaps.geolocation.region;
				var ob = {
					id: region
				}
				console.log(ob);
				$.ajax({
					type: 'POST',
					url: 'old.php',
					processData: true,
					dataType: 'json',
					data:"param="+JSON.stringify(ob)
				});

			});
		});

принял ответ так:
if($_POST['param']) {
		$param = json_decode($_POST['param']);
		echo json_encode($param->id);
	}

но фиг там, ответ вообще не пришел:cray:

laimas 31.05.2017 16:03

Цитата:

Сообщение от mgq
processData: true,

это вообще выбросить можно, оно и так по умолчанию true. contentType: false, и processData: false указывают для того, чтобы данные не преобразовывались и не были переданы как application/x-www-form-urlencoded когда $.ajax используется для загрузки файлов на сервер.

А ответ нужно смотреть в success: function(name_var) { ....

mgq 31.05.2017 16:27

Если сделать так:
$.ajax({
					type: 'POST',
					url: 'old.php',
					dataType: 'json',
					data:"param="+JSON.stringify(ob),
					success: function(result) {
						alert( result );
					}	
				});

то success ничего не возвращает

ksa 31.05.2017 16:34

Цитата:

Сообщение от mgq
фиг там, ответ вообще не пришел

Я с ПХП не работаю... Шлю данные строкой, указав непосредственно в УРЛ - получаю нормально.

var prm='test';
$.ajax({
	type: 'POST',
	url: 'old.php?prm='+prm
});

Тут вот много чего про параметры в УРЛ...

laimas 31.05.2017 16:41

Отладчик есть, можно проверить что отправляет (и отправляет ли) клиент, где и как пытается принять сервер....


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