Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.10.2018, 18:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Да, странно работает JS с utf, а вот с запросами ...

Вам чего надо чтобы в каждый объект массива попадала пара - id->значение и title->значение? Ну так после получения параметров, берете по две пары и помещаете в объект. Они же у вас повторяются, зачем лишние разделители?
Ответить с цитированием
  #12 (permalink)  
Старый 02.10.2018, 19:32
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от laimas Посмотреть сообщение
Вам чего надо
Я бы хотел разделитель.
Так как мне чтобы хоть малость приблизится к вашему уровню нужно ещё как минимум лет 10 гавнокодить, то я не понимаю ваших намёков. Вы уж извините меня.

Я так прикинул глядя на клавиатуру, возьму ка я лучше вместо двух вопросов для разделения между объектами в массиве, две палочки ||, а в текстовом инпуте, где пользователь имеет влияние на генерируемый урл, сделаю фильтр на запрет символов: &, || и =
, чтобы вдруг чаво не сломать.

Теперь у меня новая проблема - фильтр на упомянутые выше символы. Никогда не писал, пользовался фильтром который мне здесь ещё год назад помогли написать. Но, помню что не раз натыкался на документацию по написанию фильтров, так что буду искать и пробовать.
Ответить с цитированием
  #13 (permalink)  
Старый 02.10.2018, 20:21
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

const urlParameters = {
      title: 'гимми да бест',
      other: ['один', 'два', 'три']
    }
    const encodedUrl = (`http://localhost:2999/page?data=${encodeURIComponent(JSON.stringify(urlParameters))}`)
    console.log(encodedUrl)
    const decodedUrl = decodeURIComponent(encodedUrl)
    const data = decodedUrl.split('?data=')[1] && JSON.parse(decodedUrl.split('?data=')[1])
    data && console.log(data.title, data.other[0])


Другой варик
Ответить с цитированием
  #14 (permalink)  
Старый 02.10.2018, 20:27
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,501

Используйте POST, а не GET.
Используйте JSON.stringify и JSON.parse, а не изобретайте велосипед.
__________________
29375, 35
Ответить с цитированием
  #15 (permalink)  
Старый 03.10.2018, 01:07
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от MC-XOBAHCK
Я бы хотел разделитель.
Зачем? И вообще ищут на сервере, если только вы не хотите сделать поиск по странице, но тогда причем тут id и title?

Если эти GET параметры есть поля формы, то последовательность их будет такой, в какой поля объявлены в форме. Другими словами вы можете структурой формы следовать ожиданиям сервера. А к примеру для РНР именованием полей можно задавать итоговый массив любой вложенности при этом поля в форме могут располагаться произвольно. И это никак не достигается дополнительными никчемными разделителями в GET параметрах, исключительно только использованием ключей (имен полей формы).

У вас запрос key=var&key=var&key=var&key=var и судя по тому месту где вы вставляете свой разделитель вы хотите получить по две пары key=var&key=var. Вам показали как (или вы сами). Если в цикле этого кода проверять на четность его итерацию (деление по модулю, а можно и проще, проверяя младший бит, у нечетных он равен 1), то это будет говорить о том, что нужно объявить в массиве объект, который будет текущим и в который помещаются разбираемые в цикле параметры (key=var).

Если бы речь была о сервере и РНР, то ему достаточно array_chunk($_GET, 2). А вот если передается значение некоторого ключа, из которого методом расколачивания нужно получить массив, тут уже иное дело. Или же "размерность следования" ваших параметров запроса не постоянная, можно еще что-то придумать, но вот для чего такой костыль может потребоваться я ума не приложу. )

Последний раз редактировалось laimas, 03.10.2018 в 01:09.
Ответить с цитированием
  #16 (permalink)  
Старый 03.10.2018, 13:33
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от laimas
Зачем?
Я извиняюсь, где то ввёл в заблуждение. Нет у меня никаких запросов к серверу, и поиска в данном случае тоже нет. Я просто передаю таким способом данные для скрипта (в данном случае массив объектов). Вон же для карт передают в урле зум, координаты, дескрипшины и изображения для меток.

Более приблежённый к моему вариант:
http://sait.com/page?form=treagle&size=10.5,4.24&color=red&tag=меточка||form=rechtagle&size=10,4&color=green&tag=другая_метка||form=treagle&size=7,9,12&color=orange&tag=ещё_меточка

Получив такие данные я могу сгенерировать скриптом три блока - 2 треугольника и 1 прямоугольник, нарисовать фигуры по заданными размерам, задать цвет и заголовки, произвести какие либо расчёты. Данных и элементов можно больше напихать, у меня в скрипте что я пишу получилось 5 ключей для каждого элемента массива.
Само собой названия ключей оптимизируются до 1-го символа, чтобы максимально укоротить длину урла.

Вы работаете над сложными задачами, а у меня уровень не тот, поэтому всё куда примитивнее чем вы подумали.
Ответить с цитированием
  #17 (permalink)  
Старый 03.10.2018, 13:59
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от MC-XOBAHCK
Я просто передаю таким способом данные для скрипта
Интересно, откуда?
Пользователь набивает в адресную строку при вызове страницы??

Последний раз редактировалось Dilettante_Pro, 03.10.2018 в 14:01.
Ответить с цитированием
  #18 (permalink)  
Старый 03.10.2018, 14:06
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от Dilettante_Pro
Интересно, откуда?
Из онлайн-конструктора который генерирует эту ссылку.
Что то типа как в Codepen - я написал код и дал вам ссылку чтобы вы оценили какой я гавнокодер. Только тут данные не хранятся на сервере, а берутся из урла.
Ответить с цитированием
  #19 (permalink)  
Старый 03.10.2018, 14:15
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Или другой пример.
Для себя пользователь может сохранить данные в localStorage (у меня localStorage реализован в конструкторе), а вот чтобы показать кому то результат, чтобы другой человек мог увидеть что у него получилось - вот для этого данные засовываются в урл.
Ответить с цитированием
  #20 (permalink)  
Старый 03.10.2018, 15:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сравните прежнее с этим. А вообще вам уже сказали - есть json.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Новая система управления сайтом Scripto CMS deepslam Ваши сайты и скрипты 38 31.01.2011 14:55
загрузка джаваскрипта file by file с номером ревизии(последней) в урле для файла sergdev Ваши сайты и скрипты 7 13.04.2010 10:52
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31