ajax

Рабочий пример - передаем методом post содержание json с двумя параметрами и работает так:

var obj = {"tbl":"tel_goods","pri":pri}; // вот так надо 

console.log('obj '   obj  )

json1 = JSON.stringify( obj ) // это обязательно

console.log('json1 '   json1  )

$.ajax({
		url: url1,
		method: 'post',
		//dataType: 'html',
		dataType: "json",
		data:  {pp:json1},  
		async: false,
		//contentType: "application/json; charset=utf-8",
		//cache: false,
		//processData : false,
		//contentType : false, 
		
		success: function( obj , status, jqXHR)
		{
			console.log('success')
		},
		
		error: function(obj , status, jqXHR)
		{
		}
	});	

Постоянно-периодически возвращаемся к проблеме передачи json на сервер. Дело в том, что сервер не может сделать json_decode для принимаемого содержания.

Работает такой код на php. Главное не путать где у вас получается array, а где object. Это важно. 

$pp = json_decode($_POST["pp"]);
$tbl = $pp->tbl; 

Далее если надо записать в базу данных полученный $_POST["pp"] есть нюанс:Object

Object предоставляет свои параметры через -> . А вот array предоставляет свои параметры через ["..."] . И их нельзя путать.

$toDb = json_decode((array)$_POST["pp"]);

Тут фишка в том, что первый уровень об'екта должен быть преобразован в array, иначе будет ошибка.