Передача JSON-закодированной переменной от PHP до JavaScript по почте

Оператор MERGE объединяет данные между двумя таблицами. Используя ДВОЙНОЙ позволяет нам использовать эту команду. Обратите внимание, что это не защищено от параллельного доступа.

create or replace
procedure ups(xa number)
as
begin
    merge into mergetest m using dual on (a = xa)
         when not matched then insert (a,b) values (xa,1)
             when matched then update set b = b+1;
end ups;
/
drop table mergetest;
create table mergetest(a number, b number);
call ups(10);
call ups(10);
call ups(20);
select * from mergetest;

A                      B
---------------------- ----------------------
10                     2
20                     1

7
задан Francis 4 September 2009 в 05:39
поделиться

1 ответ

В кодировке JSON широко используются кавычки. Если просто вывести строку в кодировке JSON в свой атрибут HTML value , кавычки будут мешать разметке. Их нужно экранировать, чтобы поместить в HTML. Попробуйте следующее:

<input type="hidden" name="jsonarray" value="<?php echo htmlspecialchars($jsonarray,ENT_QUOTES); ?>" id="jsonarray">

Изменить: в ответ на ваше обновление я не уверен, что должен делать ваш JSON.parse. Все, что закодировано с помощью json_encode () в PHP, технически является допустимым объектом Javascript и не требует дальнейшего анализа. Если бы у меня был объект с именем $ obj со свойством name «hello», я мог бы сделать это:

<script type="text/javascript">
var o = <?php echo json_encode($obj); ?>;
alert(o.name);
</script>

и получить предупреждение «hello». Результатом json_encode является идеально подходящий объект javascript.

Тот факт, что вывод вашего массива $ _ POST экранирован косой чертой, заставляет меня думать, что, возможно, ваша директива magic_quotes_gpc включена. В этом случае вам придется отменить экранирование переменных $ _POST с помощью stripslashes () .

12
ответ дан 6 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: