


Как получить определённые данные из ajax запроса?
Расскажу ситуацию: Есть ajax код который подставляет значения из корзины
$(document).on("click", ".menu__skins-sell", function () {
let skin_id_sell = $(this).data("skin-id");
$.ajax({
type: "POST",
url: "ajax_profile.php",
data: {
skin_id_sell: skin_id_sell,
},
success: function (result) {
$("#menu_skin").html(result);
},
});
});
Я хочу чтобы я мог динамически менять и корзину и баланс на сайте, можно ли это сделать без двух php файлов и без двух ajax запросов? Ведь в result возвращается вся страница. Пока что баланс меняется только при обновлении страницы
Если не будете отвечать ответы лучшими – больше не буду отвечать) А то расписываешь, в комментах и на другие вопросы отвечаешь, а КПД только падает. Абидна.
Используйте JSON.
$(document).on("click", ".menu__skins-sell", function () {
let skin_id_sell = $(this).data("skin-id");
$.ajax({
type: "POST",
url: "ajax_profile.php",
data: {
skin_id_sell: skin_id_sell,
},
success: function (result) {
var result_parsed = JSON.parse(result);
$("#menu_skin").html(result.menu_skin);
$("#balance").html(result.balance);
},
});
});
PHP:
$return = [];
$return['menu_skin'] = "<h1>blablabla</h1>";
$return['balance'] = "<span style=\"color: red\">Сто тыщ мульёнов рублей</span>";
echo json_encode($return);
Таким образом из PHP-скрипта вы вернёте что-то подобное:
{"menu_skin":"blablabla","balance":"blablabla2"}
JS преобразует эту строку в массив:
"menu_skin" => "blablabla",
"balance" => "blablabla2"
И вы сможете условно двум элементам задать отдельные значения, полученные при одиночном обращении к скрипту. Сначала нужно будет отпарсить результат, вернувшийся из PHP:
success: function (result) {
var result_parsed = JSON.parse(result);
И потом можно будет отдельно распихивать куски результата куда вам нужно:
$("#menu_skin").html(result_parsed.menu_skin);
$("#balance").html(result_parsed.balance);
}
Могут быть пляски с экранированием спецсимволов со стороны PHP и де-экранированием со стороны JS, поскольку HTML подразумевает использование кавычек, как и синтаксис JSON. Но тут уже не помогу, ибо делал подобное уже очень давно.
По хорошему и баланс и корзина должны храниться в БД, а на сайте они только отображаются. Получать одним запросом и обрабатывать одни файлом рнр вполне возможно, это не проблема...
1. такая метода приведет к дырам на твоем сайте..
2. "ведь в result возвращается вся страница" - что отправляешь с сервера, то и приходит, если отправляешь ненужные данные, то они и приходят