Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Строковый параметр функции со спецсимволами (https://javascript.ru/forum/misc/3336-strokovyjj-parametr-funkcii-so-specsimvolami.html)

JooZ 09.04.2009 12:51

Строковый параметр функции со спецсимволами
 
есть

function DeleteBlock(id,name)

и нейм можеть быть какой угодно, например: 7, 'черный'
сама функция вызывается

onclick="DeleteBlock('<?php echo $var['id']; ?>','<?php echo $var['name']; ?>')"

Можна как-то передавать такие значения в джаваскрипт?
Или запрещать юзеру вводить спецсимволы в названия?

Kolyaj 09.04.2009 13:05

Экранировать.

JooZ 09.04.2009 14:22

чем?
addslashes не помогает если есть двойная кавычка

Kolyaj 09.04.2009 14:42

Лучший вариант сериализовать в JSON. Например, с помощью Zend_Json::encode, если используется Zend.

JooZ 09.04.2009 15:09

Zend не использую, но стандартный json_encode() возвращает строку в двойных кавычках, что приводит к ошибке.. (

Kolyaj 09.04.2009 15:26

У вас слишком большая вложенность различных кавычек. Теоретически это все экранировать можно, но муторно. Лучше вынести в отдельный код
<script type="text/javascript">
var name = <?php json_encode(echo $var['name'];) ?>;
</script>
onclick="DeleteBlock('<?php echo $var['id']; ?>', name)"

JooZ 09.04.2009 16:18

работает!)
Спасибо большое.. )


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