Здравствуйте, помогите разобраться!
Формирую 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};
// и т.д.
И так по каждому артикулу.
Понял, что это полный бред. Ведь артикулов может быть бесконечное кол-во.
Начал думать, что может есть вариант правильнее с меньшим кодом, но моих знаний и навыков хватило только на это.
Помогите, пожалуйста, разобраться!
А может есть возможность отправлять в БД артикул и количество, а БД будет возвращать название товара, стоимость и т.д.?
Я нуб! Извините!