Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: php, iframe и немного javascript
 
 автор: korshun   (19.08.2010 в 20:08)   письмо автору
 
 

Добрый день, уважаемые.
Помогите решить задачку:
Имеется файл 1.php, в нем есть input возвращающий значение $num и iframe, в который грузится 2.php. В нем рисуется таблица, в которую данные грузятся из БД, касающиеся номера $num, в ней мне нужно редактировать, добавлять и удалять строки.
Изначально таблица пустая. Для добавления новой и последующих строк строки сделал ссылку [html] <a href='' onclick='window.open("LINK","NAME","PRMTR");'><img src='img/add.png' title='Добавить' style='margin:0 5px 0 0'></a> [/html]
Вопросы:
1. Как передать $num сначала из 1.php в 2.php а потом в окно NAME, созданное javascript ? Из 1.php в 2.php впринципе понятно - сессии (но может еще есть какой способ ?). А из 2.php в созданное окно как значение передать ?
2. Как после добавления данных в окне NAME обновить iframe, а точнее 2.php в нем ? Примеры гугл показывает, но я с javascript дружу очень плохо, на пальцах бы мне обьяснить.

  Ответить  
 
 автор: sim5   (19.08.2010 в 20:51)   письмо автору
 
   для: korshun   (19.08.2010 в 20:08)
 

Из 2.php куда-то что-от передать нельзя, это скрипт на сервере, а нужно говорить об элементах на станице уже у клиента, из из какого элемента и куда. Заведомо известный номер на стороне сервера можно только подставить как параметр, например, в строку js-кода описывающего вызов JS функции.
О каком добавлении новостей может идти речь, если даже и не упоминается никакой формы, ни какой ссылки на обработчик? Где форма, кому номер?

  Ответить  
 
 автор: korshun   (19.08.2010 в 21:04)   письмо автору
 
   для: sim5   (19.08.2010 в 20:51)
 

Понял, что имеете в виду.
Т.е. если вместо простой ссылки сделать форму и передавать значения post'ом, а в обработчике onSubmit этой формы вызывать javascript'ом окно - так прокатит ?

  Ответить  
 
 автор: sim5   (19.08.2010 в 21:07)   письмо автору
 
   для: korshun   (19.08.2010 в 21:04)
 

Зачем вам окно? Для чего вы используете iframe? Не что вы туда помещаете, а суть его назначения какова?

  Ответить  
 
 автор: korshun   (19.08.2010 в 21:19)   письмо автору
 
   для: sim5   (19.08.2010 в 21:07)
 

iframe для того, что б таблица с содержимым не растягивалась далеко вниз, а тупо скроллилась в окне заданного размера.
А скриптом маленькое окно зачем вызываю.. Да потому что страница в целом загружена очень сильно, на ней ведь не только один input с iframe :)
А в чем трудность то ? На многих сайтах что-то подобное реализовано, неужели это настолько капризная конструкция ?

  Ответить  
 
 автор: sim5   (19.08.2010 в 21:27)   письмо автору
 
   для: korshun   (19.08.2010 в 21:19)
 

То что у вас во фрейм загружено, можно считать потерянным для индексации. А вот прокручивать что-то в окне, так это можно и в элементе DIV сделать, не обязательно для этого IFAME применять.
Слишком загружена страница, так это ваши проблемы, возможно лучше и убрать нечто. Но если все нужное, то кто вам запрещает показывать/скрывать форму для добавления сообщений, которая просто на этой же странице находится?
Вот представьте себе, что на странице этой (форума, с вашей темой) вместо того чтобы был переход на страницу добавления сообщения, после клика на ссылке "Ответить", внизу под этим сообщением раскрывалась форма, которая скрытым полем передает номер записи (id сообщения, на которое вы отвечаете). Зачем новое окно? К тому же, зачем некий номер? Он то для чего? Если "таблица которая из базы выводиться......" это записи некоего сообщения, и новое сообщение вы добавляете только для нее, то номер этот известен, и в форме уже должен быть прописан явно.

  Ответить  
 
 автор: korshun   (19.08.2010 в 21:34)   письмо автору
 
   для: sim5   (19.08.2010 в 21:27)
 

Отлично, убедили.
Убираем фрейм, делаем в диве. Как в этом случае передать значение переменной в окно, созданное javascript ? :)

  Ответить  
 
 автор: sim5   (19.08.2010 в 21:40)   письмо автору
 
   для: korshun   (19.08.2010 в 21:34)
 

Зачем вам окно? Знали вы бы только как они раздражают... Я же вам писал, что сделать можно лучше и удобнее. А передать, так это аргуметом в функцию можно, вот только кому?
Сдается мне, что у вас просто бардак какой-то, или вы не можете описать что, для чего, почему, и создается такое впечатление.

  Ответить  
 
 автор: korshun   (19.08.2010 в 21:47)   письмо автору
 
   для: sim5   (19.08.2010 в 21:40)
 

Уважаемый, я не спрашиваю как лучше и удобнее, скрипты делаются для узкого круга людей в пределах одного предприятия и в данном случае лучше и удобнее делать именно так, как я описываю.
Сорри за резкость :)

  Ответить  
 
 автор: sim5   (19.08.2010 в 22:14)   письмо автору
 
   для: korshun   (19.08.2010 в 21:47)
 

Вот что уважаемый, хотите окно, бог с вами, но вы так и не ответили до сих пор, куда вы собираетесь пихать это ваш номер. И что вам отвечать тогда? В раздел HTML + JS, может там вы сможете объяснить и вас поймут, чего и куда вы хотите передать, а я не гадалка.

  Ответить  
 
 автор: korshun   (19.08.2010 в 22:29)   письмо автору
 
   для: sim5   (19.08.2010 в 22:14)
 

Изначально номер - это номер обьекта в БД.
То, что редактируется в таблице, которая изначально была в фрейме - данные, привязанные к этому номеру.
В окне js будет добавление данных в эту таблицу с привязкой к номеру.

  Ответить  
 
 автор: sim5   (20.08.2010 в 06:15)   письмо автору
 
   для: korshun   (19.08.2010 в 22:29)
 

Вы либо настолько не понимаете html-иерархию дукумента, либо не понимаете, что у вас спрашивают, что объяснить вам что-то затруднительно.
JS-метод window.open сам по себе ничего не выдумывает, а открывает окно, содержимое которого будет отображать либо страницу указанную в его первом аргументе (что у вас дипломатично отмечено как LINK), либо записаный методом JS некий html код, в вашем случае надо полагать это будет форма, в это окно по его имени (второй аргумент метода).
Вы постоянно задаете вопрос - "как передать номер", а вы в свете вышесказанного попробуйте ответить на вопрос - "кому?". Вы что полагаете, что стоит выплюнуть этот номер в открытое вами окно, и он сам по себе найдет хозяина? Думаю, что нет, не думаете так, так чего тогда топчитесь и не можете объяснить, что у вас, кому и почему....

Не знаю откуда у вас рожается этот номер, пусть, например, это будет результатом выбора пользователя некой записи для редактирования, и при этом он обращается к странице а.php, и номер известен, и он не только изначалный, а неизменяемый для данной записи. Эта страница выводит эту запись, и сохраняет в сессии ее номер. Открывая окно, вы загружаете в него страницу b.php, которая отображает форму, в которой скрытым полем передается этот номер, взятый из сессии. После удачного добавления записи, открытое окно надо закрыть, а родительское перегрузить. Это один из способов, подойдет ли он вам, бог его знает, потому как что там у вас - тайна покрытая мраком.

Более конкретно чего у вас и как бы вам хотелось - это в раздел HTML+JS форума обращайтесь, в этом разделе JS вопросами не увлекаются, не РНР это задачи.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования