Показать сообщение отдельно
  #1 (permalink)  
Старый 04.01.2016, 16:27
Аспирант
Отправить личное сообщение для K_PECT Посмотреть профиль Найти все сообщения от K_PECT
 
Регистрация: 10.12.2015
Сообщений: 47

Помогите с json
Здравствуйте, помогите разобраться!
Формирую json и отправляю в php:
function send() {
var textfield1 = '';
var textfield2 = '';
var textfield3 = '';
var textfield4 = '';
var textfield5 = '';
var ARTKL01 = '';
var ARTKL02 = '';
var ARTKL03 = '';
var ARTKL04 = '';
var ARTKL05 = '';
var kolichestvo01 = '';
var kolichestvo02 = '';
var kolichestvo03 = '';
var kolichestvo04 = '';
var kolichestvo05 = '';

var data = {
  "pole1": textfield1,
  "pole2": textfield2,
  "pole3": textfield3,
  "pole4": textfield4,
  "pole5": textfield5,
  "zakaz": [
{ "artikul":ARTKL01, "kolichestvo":kolichestvo01, },
{ "artikul":ARTKL02, "kolichestvo":kolichestvo02, },
{ "artikul":ARTKL03, "kolichestvo":kolichestvo03, },
{ "artikul":ARTKL04, "kolichestvo":kolichestvo04, },
{ "artikul":ARTKL05, "kolichestvo":kolichestvo05  }
]
}
var obj = {};
Object.keys(data).forEach(function (key) {
if(key == 'zakaz'){
  var arr =  data[key].filter(function(el) {
  return el.artikul && el.kolichestvo
});
if(arr.length) obj[key] = arr
}
else {
   data[key] &&  (obj[key] = data[key])
}
});
// отправляю json в php
var send = JSON.stringify(obj);
$.ajax({
type: "POST",
url: "send_json.php",
data: ( {"send_json" : send})});
}

Принимаю json в php:
if (isset($_POST['send_json'])) {$jsonString = $_POST['send_json'];}
$zakaz_json = json_decode($jsonString);
$textfield1 = $zakaz_json->pole1; 
$textfield2 = $zakaz_json->pole2; 
$textfield3 = $zakaz_json->pole3; 
$textfield4 = $zakaz_json->pole4; 
$textfield5 = $zakaz_json->pole5; 

$artikul01 = $zakaz_json->zakaz[1]->artikul;
$artikul02 = $zakaz_json->zakaz[2]->artikul;
$artikul03 = $zakaz_json->zakaz[3]->artikul;
$artikul04 = $zakaz_json->zakaz[4]->artikul;
$artikul05 = $zakaz_json->zakaz[5]->artikul;
$kolichestvo01 = $zakaz_json->zakaz[1]->kolichestvo;
$kolichestvo02 = $zakaz_json->zakaz[2]->kolichestvo;
$kolichestvo03 = $zakaz_json->zakaz[3]->kolichestvo;
$kolichestvo04 = $zakaz_json->zakaz[4]->kolichestvo;
$kolichestvo05 = $zakaz_json->zakaz[5]->kolichestvo;

Вот тут начинается ступор.
Дело в том, что не известно какие именно артикулы придут в переменные $artikul01,$artikul02,$artikul03,$artikul04,$artik ul05.
В зависимости от того какой артикул пришел нужно назначить переменные.
Например:
Если в $artikul01 пришел артикул P6001, то нужно присвоить $Prodname01='Бананы', $Ves01='1000г', $Price01 = '190' и взять количество из $kolichestvo01;
Начал делать так:
if ($artikul01 == "P6001") {$Prodname01='Бананы' ; $Ves01='1000г' ; $Price01 = '190' ; $kolvo01 = $kolichestvo01};
if ($artikul01 == "P3001") {$Prodname01='Бананы' ; $Ves01='500г' ; $Price01 = '110' ; $kolvo01 = $kolichestvo01};

if ($artikul01 == "P6002") {$Prodname01='Клубника' ; $Ves01='1000г' ; $Price01 = '190' ; $kolvo01 = $kolichestvo01};
if ($artikul01 == "P3002") {$Prodname01='Клубника' ; $Ves01='500г' ; $Price01 = '110' ; $kolvo01 = $kolichestvo01};

if ($artikul01 == "P6003") {$Prodname01='Яблоки' ; $Ves01='1000г' ; $Price01 = '190' ; $kolvo01 = $kolichestvo01};
if ($artikul01 == "P3003") {$Prodname01='Яблоки' ; $Ves01='500г' ; $Price01 = '110' ; $kolvo01 = $kolichestvo01};

if ($artikul01 == "P6004") {$Prodname01='Груши' ; $Ves01='1000г' ; $Price01 = '190' ; $kolvo01 = $kolichestvo01};
if ($artikul01 == "P3004") {$Prodname01='Груши' ; $Ves01='500г' ; $Price01 = '110' ; $kolvo01 = $kolichestvo01};

if ($artikul01 == "P6005") {$Prodname01='Апельсины' ; $Ves01='1000г' ; $Price01 = '190' ; $kolvo01 = $kolichestvo01};
if ($artikul01 == "P3005") {$Prodname01='Апельсины' ; $Ves01='500г' ; $Price01 = '110' ; $kolvo01 = $kolichestvo01};


Потом также по второму артикулу:
if ($artikul02 == "P6001") {$Prodname02='Бананы' ; $Ves02='1000г' ; $Price02 = '190' ; $kolvo02 = $kolichestvo02};
if ($artikul01 == "P3001") {$Prodname02='Бананы' ; $Ves02='500г' ; $Price02 = '110' ; $kolvo02 = $kolichestvo02};

if ($artikul02 == "P6002") {$Prodname02='Клубника' ; $Ves02='1000г' ; $Price02 = '190' ; $kolvo02 = $kolichestvo02};
if ($artikul02 == "P3002") {$Prodname02='Клубника' ; $Ves02='500г' ; $Price02 = '110' ; $kolvo02 = $kolichestvo02};
// и т.д.


И так по каждому артикулу.
Понял, что это полный бред. Ведь артикулов может быть бесконечное кол-во.
Начал думать, что может есть вариант правильнее с меньшим кодом, но моих знаний и навыков хватило только на это.
Помогите, пожалуйста, разобраться!

А может есть возможность отправлять в БД артикул и количество, а БД будет возвращать название товара, стоимость и т.д.?
Я нуб! Извините!

Последний раз редактировалось K_PECT, 04.01.2016 в 16:39.
Ответить с цитированием