Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Фабрика виджетов и autocomplite (https://javascript.ru/forum/jquery/77985-fabrika-vidzhetov-i-autocomplite.html)

Misha_White 11.07.2019 13:00

Не выходит цветочек аленький...
вот мой элемент:
<div id="box" data-param = "{'a' : 10, 'b' : 'test'}"></div>


UPD: завтра попробую string.replace заменить кавычки.

рони 11.07.2019 13:31

Misha_White,
это костыль
<!DOCTYPE html>

<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

    <script>
$(function() {
        var obj = $("#box").data("param");
        obj = obj.replace(/'/g, '"');
        obj = JSON.parse(obj);
        alert(obj.b);
});
    </script>
</head>

<body>
<div id="box" data-param = "{'a' : 10, 'b' : 'test'}"></div>

</body>
</html>

Цитата:

Сообщение от Misha_White
Не выходит

значит нет JSON или смотрите куда кавычки исчезают на сервере.

Misha_White 11.07.2019 14:23

С сервера приходит в таком виде
"{'a' : 10, 'b' : 'test'}"

передаю так:
attr = {"data-url":"url", "data-params":{"id":id}}
тип того.

т.к. Python словарь ключи может иметь либо int, либо string.
Попробую ещё на стороне сервера json сформировать, а не словарь.
я бы мог а Ajax-запрос воткнуть "{'a' : 10, 'b' : 'test'}" и оно бы сработало, скорее всего. Но. Мне нужно туда ещё один параметр запихать, который из селекта выбирается... А чтобы запихать, надо преобразовать в объект.

рони 11.07.2019 16:59

Цитата:

Сообщение от Misha_White
чтобы запихать, надо преобразовать в объект

вам изначально нужна строка ссылки, url с параметрами "https://test.ru/?a=10&b=test&c=" никаких обьектов
и потом $.ajax(this.url + valueLowerCase)

Misha_White 11.07.2019 17:08

Нет, я делаю POST-запрос, соответственно передаю словарём параметры
var request = $.ajax({
  url: "script.php",
  method: "POST",
  data: { id : menuId },
  dataType: "html"
});

рони 11.07.2019 17:11

Цитата:

Сообщение от Misha_White
я делаю POST-запрос

data может быть строкой!

рони 11.07.2019 17:18

Misha_White,
https://api.jquery.com/jQuery.post/
data ... object or string


var request = $.ajax({
  url: this.url + valueLowerCase,
  method: "POST",
  dataType: "html"
});

<select data-url = "script.php?a=10&id="

Misha_White 12.07.2019 04:19

Но это же GET-параметры?

рони 12.07.2019 10:31

Цитата:

Сообщение от Misha_White
Но это же GET-параметры?

проверяли?


Часовой пояс GMT +3, время: 01:14.