| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > XMLHttpRequest + передачя тегов |
| Автор: chiffa 13.11.2008, 11:14 | ||
| Добрый день всем, использую аджакс через XMLHttpRequest тоесть из index.php через 2.js в table.php идет запрос, обработка и дальнейший вывод. Так вот суть задачи: в table.php выводятся инфа из базы данных в виде таблици, вопрос как передать теги? если стандартно <table> <tr> <td></td> </tr> </table> то выдает ошибку. Делал таким образом <table> <tr> <td> </td> $x </tr> </table> все выводится на ура, но почему то только первые 10 записей из базы, всего же их около 100. Если делал обічній вывод типа $x."<<br>>" то выводится все 100. Подскажите в чем проблема и как вообще подобное лучьше всего реализовать. код 2.js:
|
| Автор: solenko 13.11.2008, 11:30 |
| Если отдаете то зачем использовать responseXML? Пользуйтесь responseText |
| Автор: chiffa 13.11.2008, 13:55 |
| Спасибо за ответ! просто поменять: responseXML на responseText? Поменял - престало вообще что либо выводить |
| Автор: bars80080 13.11.2008, 15:27 |
| дофига много чего написано, главное непонятно зачем. совет правильный, пхп-скрипт отдаёт не валидный xml, а кусок обычной раметки, поэтому надо использовать responseText. то что дальше не работает - надо смотреть в обработке либо сделать проще http://forum.vingrad.ru/index.php?show_type=forum&showtopic=234446&st=0&anchor=entry1685574 |
| Автор: chiffa 13.11.2008, 22:38 |
| Спасибо огромное! огромный тебе респект! Спасаешь уже много раз! |
| Автор: chiffa 14.11.2008, 13:37 | ||
И еще вопросик, может подскажет кто. Если в table.php есть JavaScript код, то почему то не выполняется после асинхронной загрузки. К примеру этот:
Подскажите, кто знает в чем трабл... Добавлено через 8 минут и 34 секунды так работает на ура: <a href='JavaScript:alert ("fff");'>dddddd</a>, но если функция будет довольно емкая, то будет не эститично |
| Автор: chiffa 17.11.2008, 16:02 |
| никто незнает?... |
| Автор: bars80080 17.11.2008, 19:08 |
| если не ошибаюсь, скрипты надо мутить с помощью appendChild. т.е. напрямую добавляя к DOMу, а затем меняя ему .src наверно можно отследить с помощью onload загрузку и тогда функции будут доступны но это наобум |
| Автор: ksnk 17.11.2008, 19:59 |
| chiffa, Вот http://forum.dklab.ru/js/other/ZapuskJavascriptPrishedshegoCherezAjaxHttprequestOptimizatsiya.html одно из решений. Основная мысль - из полученого html'я нужно выгрести весь <script/> и потом уже вручную его за'eval'ить. Иначе получается не особенно кроссброузерно. |
| Автор: chiffa 18.11.2008, 17:28 |
| спасибо за оветы, но что то не получается разобраться что и как. ksnk, может подскажешь как выцепить скрипты из хтмл и как с помощью evel их потом залить?... буду весьма признателен |
| Автор: ksnk 18.11.2008, 19:33 | ||
| Хм... Вообще-то код по моей ссылке действительно несколько неработоспособен :-( Методом упрощения удалось привести его к состоянию, когда оно заработало, правда при этом утерялась суть того метода выполнения скриптов, ну да не в этом , в общем-то, сейчас суть... appendData - добавляет строку data_str в контейнер parent_node. Если нужно добавить к содержимому контейнера - третий параметр- "append", иначе содержимое контейнера замениться. Мастерилось на коленке, но, вроде, должно работать.
|
| Автор: chiffa 18.11.2008, 21:06 | ||
| спасибо за помощь, но что то не работает, я вставил функцию в js-файл, дальше примени: document.getElementById("ziel").innerHTML = appendData(mk1 [1]); и выводит undefined пробывал так appendData(document.getElementById("ziel").innerHTML) = mk1 [1];, может я что то недопоял, не выводит вообще ничего. вот сам код js-файла
|
| Автор: chiffa 23.11.2008, 23:29 |
| up |
| Автор: ksnk 24.11.2008, 00:45 | ||
| appendData - процедура, которая выполняется не сразу, а сначала неспешно получит от сервера ответ, потом уже его обработает и вставит в innerHTML элемента, переданного вторым параметром. возможно, было бы правильнее написать
|
| Автор: chiffa 24.11.2008, 01:07 |
| не-а.... не работает... переданые скрипты не выполняются... |
| Автор: ksnk 24.11.2008, 03:27 |
| chiffa, В FireFox'е есть FireBug, а мои способности телепата, видимо исчерпались... |
| Автор: chiffa 24.11.2008, 11:53 |
| работает почему то только в осле в фаерфоксе и в опере не работает. Смотрел через FireBug оно вообще скрипты не показывает, получается что они не подгрузились... сорри, но я просто незнаю какая инфа будет полезной. я вроде как узе все выложил... |
| Автор: chiffa 27.11.2008, 00:01 |
| up |
| Автор: solenko 27.11.2008, 08:39 |
| chiffa, а ты выложи все это в веб и дай ссылку. |
| Автор: chiffa 27.11.2008, 21:38 |
| вот... http://chiffa.biz.ua/rab/js/ |
| Автор: ksnk 27.11.2008, 23:21 |
| Нужно поставить таки FireBug. Так бы сразу была видна ошибка. -- "Javcript: return false; " не является универсальным заклинанием. Если хочется - вместо пустого линка можно вставить 'javascript:void();' -- вместо eval(appendData.js_store) лучше поставить eval.call(window, appendData.js_store) в 19 строку. Так, по идее, должно работать в FireFox. |
| Автор: chiffa 28.11.2008, 00:28 |
| Огромное спасибо!!! Наконецто оно заработало!!! |