Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 11.07.2019, 11:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

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 = {a : 10, b : "test"};
        var param = JSON.stringify(obj);
        $("#box").attr("data-param", param);
        alert($("body").html());
        alert($("#box").data("param").b);
});
    </script>
</head>

<body>
<div id="box" ></div>

</body>
</html>
Ответить с цитированием
  #22 (permalink)  
Старый 11.07.2019, 11:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Misha_White,
используйте JSON.stringify
Ответить с цитированием
  #23 (permalink)  
Старый 11.07.2019, 11:43
Интересующийся
Отправить личное сообщение для Misha_White Посмотреть профиль Найти все сообщения от Misha_White
 
Регистрация: 17.02.2010
Сообщений: 16

Ну я про JSON выше и сказал, спасибо.
Ответить с цитированием
  #24 (permalink)  
Старый 11.07.2019, 13:00
Интересующийся
Отправить личное сообщение для Misha_White Посмотреть профиль Найти все сообщения от Misha_White
 
Регистрация: 17.02.2010
Сообщений: 16

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


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

Последний раз редактировалось Misha_White, 11.07.2019 в 13:10.
Ответить с цитированием
  #25 (permalink)  
Старый 11.07.2019, 13:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

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 или смотрите куда кавычки исчезают на сервере.
Ответить с цитированием
  #26 (permalink)  
Старый 11.07.2019, 14:23
Интересующийся
Отправить личное сообщение для Misha_White Посмотреть профиль Найти все сообщения от Misha_White
 
Регистрация: 17.02.2010
Сообщений: 16

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

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

т.к. Python словарь ключи может иметь либо int, либо string.
Попробую ещё на стороне сервера json сформировать, а не словарь.
я бы мог а Ajax-запрос воткнуть "{'a' : 10, 'b' : 'test'}" и оно бы сработало, скорее всего. Но. Мне нужно туда ещё один параметр запихать, который из селекта выбирается... А чтобы запихать, надо преобразовать в объект.
Ответить с цитированием
  #27 (permalink)  
Старый 11.07.2019, 16:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Misha_White
чтобы запихать, надо преобразовать в объект
вам изначально нужна строка ссылки, url с параметрами "https://test.ru/?a=10&b=test&c=" никаких обьектов
и потом $.ajax(this.url + valueLowerCase)
Ответить с цитированием
  #28 (permalink)  
Старый 11.07.2019, 17:08
Интересующийся
Отправить личное сообщение для Misha_White Посмотреть профиль Найти все сообщения от Misha_White
 
Регистрация: 17.02.2010
Сообщений: 16

Нет, я делаю POST-запрос, соответственно передаю словарём параметры
var request = $.ajax({
  url: "script.php",
  method: "POST",
  data: { id : menuId },
  dataType: "html"
});
Ответить с цитированием
  #29 (permalink)  
Старый 11.07.2019, 17:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от Misha_White
я делаю POST-запрос
data может быть строкой!
Ответить с цитированием
  #30 (permalink)  
Старый 11.07.2019, 17:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

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="
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сайт приема заказов на создание виджетов и сайтов ) maximkr1 Ваши сайты и скрипты 0 09.04.2019 02:29
Конструкторы сайтов и виджетов для них wertklop Общие вопросы Javascript 11 10.08.2016 15:15
Фабрика виджетов jQuery UI FanAizu jQuery 4 22.01.2014 17:14
Создание виджетов. Выбор решения. m00 Общие вопросы Javascript 1 15.04.2010 04:27
Jquery IE6 autocomplite hp5741 Internet Explorer 8 31.08.2009 17:55