Страница 1 из 1

Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 13:32
WereWolf
Всем доброго дня.
Столкнулся с такой проблемой.

Код: Выделить всё
function updatePageDeletePhoto() {
    if (request.readyState == 4) {
    alert(request.responseText);
     var newTotal = request.responseText.split("|");
     if (newTotal[0] == "1") {
      alert(newTotal[1]);
      var remove_obj=document.getElementById(newTotal[1]);
      document.getElementById("thumbnails").removeChild(remove_obj);     
     }
   }
  }


в responseText, а далее в newTotal[1] Получаю id DIV-а который надо уничтожить.
Что сюда передать чтобы он этот див нашёл var remove_obj=document.getElementById(newTotal[1]);?
если руками пишу remove_obj=document.getElementById("p231"); то всё ок.
если же пытаюсь подставить через переменную - то не находит. Пробовал и с кавычками и без. в alert отслеживаю что передаю правильное имя id - а оно всё равно никак.

Может у кого есть мысли на этот счёт,
буду очень признателен.

Re: Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 14:09
WereWolf
Проблему я нашёл. Оказалось очень интересно - во всяком случае для меня.

Замерил длину получаемой строки - она оказалось длиннее чем надо.
Строка возращается из php через echo.

echo '1|p'.$ind; где $ind это переменная содержащая целое число.

Убил лишние пробелы и всё пошло, а вот откуда они взялись?

Re: Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 14:23
Muerto
echo '1|p'.trim($ind)
Но вот откуда эти пробелы - вопрос интересный. Без всего кода сказать сложно. Возможно это BOM.

Re: Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 15:21
WereWolf
Muerto писал(а):echo '1|p'.trim($ind)
Но вот откуда эти пробелы - вопрос интересный. Без всего кода сказать сложно. Возможно это BOM.


Так весь код и есть.

в ехо - выдаю параметры, а в request.responseText получаю.
Если в php выставляю trim то не помогает. Там же число, что там тримить.

Re: Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 15:50
Muerto
WereWolf
Пробелы где организуются? И пробелы ли это, а не переводы строки?

Re: Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 16:21
WereWolf
Мысль - проверил

посылаю через echo '1|p'.$ind, где $ind=269

получаю
p269%20%20%0D%0A

20 - если не ошибаюсь пробел. Значит 2 пробела и переход строки с переносом каретки.
Странно...

Re: Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 16:28
Muerto
<script type="text/javascript" charset="utf-8"> не пробовал ставить?

Re: Подстановка id в getElementById

СообщениеДобавлено: Пт окт 02, 2009 18:32
WereWolf
Muerto писал(а):<script type="text/javascript" charset="utf-8"> не пробовал ставить?

не помогает.

а почему оно должно изменить что-то?
у меня же не с кодировкой проблема, а с добавлением всякой хрени

Re: Подстановка id в getElementById

СообщениеДобавлено: Вт окт 06, 2009 12:07
Muerto
request.responseText в принципе может всякую ересь от себя добавить. Обработай его на запрещенные символы регекспом. Типа (p[0-9]+) $1 - твой ID.

Re: Подстановка id в getElementById

СообщениеДобавлено: Вт окт 06, 2009 14:44
WereWolf
сенкс. Так и сделал.