Таким образом вы можете сгенерировать данные для использования с AJAX с помощью метода «POST», который содержит данные JSON, а затем передать их в сценарий PHP, а затем декодировать их для использования в качестве переменных (пары «имя-значение»). В этом примере я использовал входные значения формы для генерации данных, передаваемых в виде строки JSON, но вы можете создавать свои собственные данные JSON для передачи не обязательно из формы.
JQuery / AJAX
Основная функция AJAX для передачи данных JSON в серверный скрипт.
$.ajax({
type: "POST",
url: targetURL,
async: false,
data: JSON.stringify($('#form').serializeArray()),
success: function(data){
console.log(data);
return true;
},
complete: function() {},
error: function(xhr, textStatus, errorThrown) {
console.log('ajax loading error...');
return false;
}
});
Если мы посмотрим на сгенерированный JSON, он имеет пары имя-значение.
Сгенерированный пример JSON:
data=[{"name":"product","value":"riserva shiraz wine glass"},{"name":"supid","value":"81"},{"name":"brandid","value":"60"},{"name":"blid","value":"7"},{"name":"cid","value":"381"}];
Динамика переменных PHP
// decode JSON string to PHP object, 2nd param sets to associative array
$decoded = json_decode($_GET['data'],true);
output values:
foreach ($decoded as $value) {
echo $value["name"] . "=" . $value["value"];
}
//set values:
foreach ($decoded as $value) {
$$value["name"] = $value["value"];
}
//both:
foreach ($decoded as $value) {
$$value["name"] = $value["value"];
echo $value["name"] . "=" . $$value["name"];
echo "";
}
Извините, не демо, но не стесняйтесь задавать вопросы.