Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946

json и кавычки

26.11.2019, 13:24. Показов 3093. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
день добрый.
никак не могу сообразить в чем загвоздка

мне нужно передать массив в функцию кнопки
получаю json_encode
JSON
1
$jsonJs={"city":"Сургут","region":"Ханты-Мансийский АО - Югра АО"}
кнопка
PHP
1
<a href="javascript:void(0);" class="btn btn-default" onClick="showZ('set','<?=$jsonJs?>');">отправить</a><br>
но вся конструкция ломается, если посмотреть в код то увидим
Code
1
onclick="showZ('Сургут','{" city":"Сургут","region":"Ханты-Мансийский="" АО="" -="" Югра="" АО"}');"=""
никак не могу правильно экранировать чтобы ничего не ломалось
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2019, 13:24
Ответы с готовыми решениями:

Почему дробные числа в JSON заключаются в кавычки?
Здравствуйте!Подскажите пожалуйста вывожу json_encode(); массив...

Как обернуть кавычки в кавычки
Здравствуйте! Пробую обернуть кавычки в кавычки но пока оборачивается весь текст: $input_lines = &quot;test1 &quot;test2&quot;...

Ошибка в коде SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
не пойму в чем ошибка вот код header(&quot;Content-Type: application/json; encoding=utf-8&quot;); $uid = intval($_GET); $userid =...

7
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.11.2019, 13:43
PHP
1
$jsonJs='{"city":"Сургут","region":"Ханты-Мансийский АО - Югра АО"}';
PHP/HTML
1
<a href="javascript:void(0);" class="btn btn-default" onClick="showZ('set',<?=$jsonJs?>);">отправить</a><br>
Добавлено через 11 минут
ну или так попробовать:
PHP/HTML
1
<a href="javascript:void(0);" class="btn btn-default" onClick=showZ('set','<?=$jsonJs?>');>отправить</a><br>
правда я не проверял
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
26.11.2019, 13:59  [ТС]
нет, разваливается
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
26.11.2019, 14:13
tgarl,
PHP
1
$jsonJs='{"city":"Сургут","region":"Ханты-Мансийский АО - Югра АО"}';
PHP/HTML
1
<a href="javascript:void(0);" class="btn btn-default" onClick='showZ("set",<?=$jsonJs?>)'>отправить</a><br>
JavaScript
1
2
3
function showZ(var1, var2){
    alert(var1+' = '+var2);
}
set = [object Object]
1
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
27.11.2019, 09:42  [ТС]
у меня так и не заработал по человечески, пошел путем извращений - завел отдельную переменную var jsonJs= new array и при помощи foreach-php заполнил ее. в самой функции проверяю есть ли такая переменная и если есть то беру данные из нее.
Спасибо за попытку помочь
0
51 / 38 / 13
Регистрация: 20.01.2019
Сообщений: 115
27.11.2019, 10:39
ломается, потому что много пересекающихся кавычек onclick="", '' и внутри опять "". в таких случаях нужно выносить в отдельные переменные:
PHP
1
2
3
4
5
6
7
<?php
$jsonJs='{"city":"Сургут","region":"Ханты-Мансийский АО - Югра АО"}';
?>
<script>
    let json = <?=$jsonJs?>;    
</script>
<a href="javascript:void(0);" class="btn btn-default" onClick='showZ("set", json);'>отправить</a>
либо вставлять без кавычек, т.е. js воспримет это как объект:
PHP
1
<a href="javascript:void(0);" class="btn btn-default" onClick='showZ("set", <?=$jsonJs?>);'>отправить</a>
и в функции showZ данные будут доступны как json.city, json.region
0
467 / 431 / 117
Регистрация: 15.02.2012
Сообщений: 1,946
27.11.2019, 11:49  [ТС]
вот я по такому принципу и сделал

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
было 
$arr=["city"=>"Сургут","region"=>"Ханты-Мансийский АО - Югра АО"];
$jsonJs=json_encode($arr); и соотвественно вот этот json  ломался весь
?>
 
стало
<script>
    var jsonJs= new array()
<?php     foreach($arr as $key=>$value){
...заполняем массив jsonJs
}?>
</script>
в функции showZ проверяем наличие jsonJs.city
0
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
27.11.2019, 18:13
Цитата Сообщение от tgarl Посмотреть сообщение
у меня так и не заработал по человечески
а в чём проблема? в моём случае в функцию передаётся объект, вот и работайте с ним как с объектом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.11.2019, 18:13
Помогаю со студенческими работами здесь

PHP json_decode (json или не json)
Третий день ломаю голову над вопросом: API вконтакте возвращает массив в json (как я полагаю) - вроде похоже на json Вот строка: ...

JSON.parse и экранированные кавычки
Код var temp = JSON.parse(''); выдаёт ошибку SyntaxError: JSON.parse: expected ',' or '}' after property value in object at line 1...

Дана строка, содержащая кавычки. Выдать сообщение правильно ли расставлены кавычки
Дана строка, содержащая кавычки. Выдать сообщение правильно ли расставлены кавычки (количество открывающихся соответствует количеству...

В заданной строке содержатся двойные кавычки. Напечатать все слова, взятые в кавычки
в заданной строке содержатся двойные кавычки. Напечатать все слова, взятые в кавычки.

Что обозначают тройные кавычки (двойные кавычки)?
res1 = wsh.Run(&quot;&quot;&quot;C:\FPC\2.6.0\bin\i386-win32\fpc.exe&quot;&quot; d:\script\sumcifr.pas&quot;, 1, true) подскажите пожалуйста почему в строке где...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru