| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > getElementById |
| Автор: Zhenek 22.11.2009, 19:53 | ||||
| Данный код вызываю в скрипте функцией : f_requestdata(username.value,"name_filtr"); Первым параметром передаею содержимое поля, второй ID элемента который надо внести сообщение. Сейчас это <div id=name_filtr></div> Тоесть например хотелось бы вызвав скрипт f_requestdata(fio.value,"fio_filtr"); Изменить уже <div id=fio_filtr></div> Использую для АЯКС проверки введенных значений на наличие запрещенных слов.
если скипт такой :
То все работает,но тогда для каждого поля нужно создать свой скрипт а если полей 50? Заранее спасибо. |
| Автор: bars80080 22.11.2009, 23:22 | ||||
| ну, а где собственно присвоение имени id переменной? здесь
попробуйте так:
|
| Автор: IDVsbruck 23.11.2009, 00:09 |
| В моем понимании, у тебя небольшое идеологическое заблуждение: не гоже скриптом распихивать полученный код. Конечно, можно было бы вместе с запросом послать также на сервер твой ID, а потом составлять сложную конструкцию для ответа и отлавливать в коллбеке ... Но зачем? - Пусть код сам себя распихивает по контейнерам, и желательно не очередью запросов, а лучше в одном - во-первых, время отправки-получения иногда соизмеримо со сременем вставки блока, но несущественно отличается при увеличении объема передаваемой информации - зачем гонять туда-сюда?, а во-вторых, браузеры в идеале поддерживают 2 параллельных асинхронных запроса - это прийдется делать либо цепочку запросов друг из друга, либо делать пул запросов. Твой получаемый скрипт либо очень универсален и ему все равно в какой контейнер вставляться, тогда проблем нет, или он сделан под конкретный проект и конкретные страницы, тогда ты без труда можешь сопоставлять id-шники скриптам на сервере. Вот и делай сколько надо своих контейнеров в получаемом коде и в конце скрипт, который пораскидывает содержимое этих "переносных" контейнеров в твои (id-шники ты передаешь и скрипт уже знает что куда вставлять). Задача с большим количеством контейнеров нетривиальна, поэтому удобно пользоваться фреймворками, чтобы не решать проблемы кроссбраузерности вставок, формирование запросов и обработку полученного кода (чтобы скрипт сразу выполнялся). На практике примерно так: - есть, скажем, 3 контейнера c id: cont_1, cont_2, cont_3; - отправляем запрос, в который вкочаем контейнеры: "../include/filtr.php?count=" + f_params + "&conts=[cont_1, cont_2, cont_3]" - неважно как передавать, можно любым своим доступным способом; - в качестве контейнера-получателя используем специальный див (можно скрытый), в который будет выгружаться наш код; - на сервере формируем ответ в виде страницы: "<div id='temp_cont_1'> code for container 1 </div> <div id='temp_cont_2> code for container 2 </div> <div id='temp_cont_2> code for container 3 </div> <script type='text/javascript'> document.getElementById('cont_1').innerHTML = document.getElementById('temp_cont_1').innerHTML; document.getElementById('cont_2').innerHTML = document.getElementById('temp_cont_2').innerHTML; document.getElementById('cont_3').innerHTML = document.getElementById('temp_cont_3').innerHTML; </script>" - получаем код, вставляем код в наш прокси-контейнер, он выполняется и заполняются твои контейнеры; - очищаем прокси-контейнер, чтобы не засорять ДОМ кодом. |
| Автор: Zhenek 23.11.2009, 04:49 |
| bars80080 Спс помогло. IDVsbruck Тоже спасибо за ответ, но да скрипт универсален. + я плохо знаю джаваскрипт,и сейчас встала проблема его использоания и мне пока не до идеалогических мыслей) главное сделать |