Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2009, 12:51
Интересующийся
Отправить личное сообщение для JooZ Посмотреть профиль Найти все сообщения от JooZ
 
Регистрация: 26.03.2009
Сообщений: 10

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

function DeleteBlock(id,name)

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

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

Можна как-то передавать такие значения в джаваскрипт?
Или запрещать юзеру вводить спецсимволы в названия?
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2009, 13:05
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Экранировать.
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2009, 14:22
Интересующийся
Отправить личное сообщение для JooZ Посмотреть профиль Найти все сообщения от JooZ
 
Регистрация: 26.03.2009
Сообщений: 10

чем?
addslashes не помогает если есть двойная кавычка
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2009, 14:42
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Лучший вариант сериализовать в JSON. Например, с помощью Zend_Json::encode, если используется Zend.
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2009, 15:09
Интересующийся
Отправить личное сообщение для JooZ Посмотреть профиль Найти все сообщения от JooZ
 
Регистрация: 26.03.2009
Сообщений: 10

Zend не использую, но стандартный json_encode() возвращает строку в двойных кавычках, что приводит к ошибке.. (
Ответить с цитированием
  #6 (permalink)  
Старый 09.04.2009, 15:26
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

У вас слишком большая вложенность различных кавычек. Теоретически это все экранировать можно, но муторно. Лучше вынести в отдельный код
<script type="text/javascript">
var name = <?php json_encode(echo $var['name'];) ?>;
</script>
onclick="DeleteBlock('<?php echo $var['id']; ?>', name)"
Ответить с цитированием
  #7 (permalink)  
Старый 09.04.2009, 16:18
Интересующийся
Отправить личное сообщение для JooZ Посмотреть профиль Найти все сообщения от JooZ
 
Регистрация: 26.03.2009
Сообщений: 10

работает!)
Спасибо большое.. )
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паралельное выполнение одной и той-же функции Сеня AJAX и COMET 3 24.01.2009 20:59
Вопрос по функции Flex Общие вопросы Javascript 3 05.12.2008 04:03
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09
владелец функции diagnost Общие вопросы Javascript 6 30.10.2008 15:04
Помогите разобраться в повторным обращении к функции, как её обнулить. AdvoGad Общие вопросы Javascript 0 01.09.2008 11:35