Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Передать данные во фрейм? (https://javascript.ru/forum/server/11088-peredat-dannye-vo-frejjm.html)

seva_81 06.08.2010 01:23

Передать данные во фрейм?
 
Здравствуйте,
интересует такой вопрос, есть сайт, шаблоны дизайна html, стоит форма обратной связи html + php, форма связи работает только во фрейме...понадобилось передать название темы письма автоматически, это номер ID товара на которой пользователь находится, в шаблонах дизайна он называется так: {$PRODUCTS_ID}, пробовал его вставлять в код обработчика но толку нет, подскажите как быть.

Вот коды обратной связи:
Фрейм:
<iframe width="364" height="210" src="/contact.html"></iframe>


Файл: contact.html:
<FORM ACTION="send.php" METHOD=post>
<TABLE BORDER=0>
<tr><td>Тема</td><td>
<input type=text name="sub" cols=40>
</td></tr>
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name="mes" cols=40 rows=5></textarea></TD></TR>
<TR>
<TD colspan=2 align=center><input type=submit value="Отправить"> <input type=reset value="Очистить"></TD></TR>
</TABLE></FORM>


Файл send.php
<?
$to = "_@_";
mail($to,"$sub",$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено<BR><center><a href='http://www.svoisait.ru/form/_post.shtml'>Отправить ещё</a>";
?>


Здесь я пробовал следующее, я сделал код send.php
<?
$to = "mail@domen.ru";
$sub ="{$PRODUCTS_ID}";
mail($to,"$sub",$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено<BR><center><a href='http://www.svoisait.ru/form/_post.shtml'>Отправить ещё</a>";
?>


Но сообщение приходит без темы вообще, для проверки пробовал вместо {$PRODUCTS_ID} вписать слово, так работает, а с {$PRODUCTS_ID} не пашет.

как сделать так чтобы была полноценная передача во фрейм?

Если это не возможно то как хотя бы даже вписать в тему письма адрес той страницы с которой оно было отправлено?

pakman 06.08.2010 08:25

ты хочешь из contact.php передать значение $PRODUCTS_ID на send.php?
Если так то
contact.php:
<FORM ACTION="send.php" METHOD=post>
<TABLE BORDER=0>
<tr><td>Тема</td><td>
<input type=text name="sub" cols=40>
</td></tr>
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name="mes" cols=40 rows=5></textarea></TD></TR>
<TR>
<TD colspan=2 align=center>
<input type='hidden' value='$PRODUCTS_ID' name='PRODUCTS_ID'>
<input type=submit value="Отправить"> <input type=reset value="Очистить"></TD></TR>
</TABLE></FORM>

send.php:
<?
$to = "mail@domen.ru";
$sub =$_POST['PRODUCTS_ID'];
mail($to,"$sub",$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено<BR><center><a href='http://www.svoisait.ru/form/_post.shtml'>Отправить ещё</a>";
?>

Если же ты говоришь тебе нужно во фрейм, только я чот не очень понял где он у тебя вставляется..то:
<iframe width="364" height="210" src="/contact.html?PRODUCTS_ID=$sub"></iframe>

На contact.php вытащить же его можно:
$PRODUCTS_ID=$_GET['PRODUCTS_ID'];

seva_81 06.08.2010 16:36

Спасибо pakman, но что-то ничего не получается.

Может мне начать заново и попробовать сделать по другому...может так будет проще?

В общем стоит ссылка:
<a href="mailto:майл@майл.ру?subject=Тема письма:%20{$PRODUCTS_ID}">Задать вопрос</a>


{$PRODUCTS_ID} это смарти, но в моем примере (ссылка) при вставке в шаблон сайта все прекрасно работает и этот код ID продукта распознает программа электронной почты, но мне нужно чтобы пользователю не нужно было для этого настраивать свой клиент.

Теперь сам вопрос и предположительный принцип работы:
Есть ссылка
<a href="">Задать вопрос</a>

При нажатии открывается маленькое окно с формой и кнопкой "отправить" в этом ничего сложного нет, самое главное теперь передать с помощью ссылки <a href="">Задать вопрос</a> вот этот самый {$PRODUCTS_ID} в форму....как это сделать?
Это нужно сделать именно со вставкой в шаблон т.к. за пределами {$PRODUCTS_ID} не работает.

Не знаю может это бред полный что я пишу, но хотелось бы это реализовать.

pakman 06.08.2010 18:37

Ну теперь вроде понял..только теперь измени все файлы расширения .html на .php.
Вот какойто *.php файл (я так понимаю на этой странице известен $PRODUCTS_ID):
<?
echo "<a href='contact.php?PRODUCTS_ID=$PRODUCTS_ID'>Задать вопрос</a>";
?>

Далее contact.php(поменяй разрешение на .php):
<?
$theme=$_GET['PRODUCTS_ID'];
echo"
<FORM ACTION='send.php' METHOD=POST>
<TABLE BORDER=0>
//я так понимаю тему человек изменить не должен? поэтому я её уберу.
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name='mes' cols=40 rows=5></textarea></TD></TR>
<TR>
<TD colspan=2 align=center>
<input type='hidden' value='$theme' name='PRODUCTS_ID'>
<input type=submit value='Отправить'> <input type=reset value='Очистить'></TD></TR>
</TABLE></FORM>";
?>

И обработчик send.php:
<?
$to = "mail@domen.ru";
$sub =$_POST['PRODUCTS_ID'];
$mess=$_POST['mes'];
mail($to,$sub,$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено<BR><center><a href='http://www.svoisait.ru/contact.php?PRODUCTS_ID=$sub'>Отправить ещё</a>";
?>

Вроде должно заработать:) Конечно я мог допустить ошибки в синтаксисе... И лучше поставить в обработчике редирект..и убрать "отправить ещё"...
<?
$to = "mail@domen.ru";
$sub =$_POST['PRODUCTS_ID'];
$mess=$_POST['mes'];
mail($to,$sub,$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено";
header('Refresh: 3; URL=http://site.ru/*.php'); // - собственно редирект, *.php - это то файл в котором находится 'Задать вопрос'..
?>

seva_81 06.08.2010 18:56

pakman письма отправляются но в теме письма просто переменная PRODUCTS_ID

Может это из-за того, что по идее переменная пишется и работает на странице в таком формате {$PRODUCTS_ID}? То есть с угольными скобками, может в этом дело?

Я попробовал изменить везде PRODUCTS_ID на {$PRODUCTS_ID}, теперь ссылка на форму содержит два раза правильные ID продукта, но на емайл приходит без темы, а также после отправки сообщения пишет "Ваше сообщение с темой и текстом: ddddddddd отправлено" то есть тема не видна.

pakman 06.08.2010 19:03

ну значит у вас переменная $PRODUCTS_ID с самого начала не имеет значения.. попробуйте вывести её на *.php. И менять на скобки не надо..ну или скажите на какой странице вы присваиваете переменной $PRODUCTS_ID значение? мне же надо знать откуда её значение тянется..

seva_81 06.08.2010 19:18

Цитата:

Сообщение от pakman (Сообщение 66636)
ну значит у вас переменная $PRODUCTS_ID с самого начала не имеет значения.. попробуйте вывести её на *.php. И менять на скобки не надо..ну или скажите на какой странице вы присваиваете переменной $PRODUCTS_ID значение? мне же надо знать откуда её значение тянется..

Я отправил вам ЛС.

pakman 06.08.2010 19:25

понятно..Я понимаю вы на этой же странице хотите сделать "Задать вопрос"?. если так то немного изменим код:
<? 
$PRODUCTS_ID=$_GET['products_id'];
echo "<a href='contact.php?PRODUCTS_ID=$PRODUCTS_ID'>Задать вопрос</a>"; 
?>

pakman 06.08.2010 19:27

Цитата:

Сообщение от seva_81 (Сообщение 66635)
теперь ссылка на форму содержит два раза правильные ID продукта

поменяйте обратно:) чтобы было 1 раз:)

seva_81 06.08.2010 19:35

Цитата:

Сообщение от pakman (Сообщение 66638)
понятно..Я понимаю вы на этой же странице хотите сделать "Задать вопрос"?. если так то немного изменим код:
<? 
$PRODUCTS_ID=$_GET['products_id'];
echo "<a href='contact.php?PRODUCTS_ID=$PRODUCTS_ID'>Задать вопрос</a>"; 
?>

у меня не получается вставить с echo (т.к. код шаблона на html), зайдите глянте что получается.
Также все что вы видите "ссылку", это так работает когда везде стоят {} вот такие скобки, как я и писал, а иначе не работает. Вот сейчас зайдите я как раз сделал так как вы сказали.

Цитата:

Сообщение от pakman (Сообщение 66639)
поменяйте обратно:) чтобы было 1 раз:)

Так ведь в верхнем коде тоже стоит два раза.

pakman 06.08.2010 19:41

Почему html? вроде написано product_info.php.. или там загружен фрэйм с расширением .html?

seva_81 06.08.2010 19:44

Цитата:

Сообщение от pakman (Сообщение 66642)
Почему html? вроде написано product_info.php.. или там загружен фрэйм с расширением .html?

Вы еаписали чтобы я переименовал html в php, я взял и переименовал шаблон в php, хотя не был уверен что так будет работать, но работает :lol:

pakman 06.08.2010 19:48

переименовал это грубо сказано, я так не говорил:) скачайте редактор PsPad - в нём создайте php файл и скопируйте содержимое html файла, Тем более редактор вам понадобится в будущем:)поэтому кстати и не работает...Всё таки у вас там ифрейм стоит да?:)

seva_81 06.08.2010 20:02

Цитата:

Сообщение от pakman (Сообщение 66644)
переименовал это грубо сказано, я так не говорил:) скачайте редактор PsPad - в нём создайте php файл и скопируйте содержимое html файла, Тем более редактор вам понадобится в будущем:)поэтому кстати и не работает...Всё таки у вас там ифрейм стоит да?:)

Вот в этом посте: http://javascript.ru/forum/server/11...html#post66631

Я пробовал с фреймом но он не распознает {$PRODUCTS_ID}, поэтому так вообще не получается запустить работу скрипта.

А сейчас я сделал так:
Мой шаблон вставил: <a href='contact.php?{$PRODUCTS_ID}={$PRODUCTS_ID}'> адать вопрос</a>
contact.php
<?
$theme=$_GET['{$PRODUCTS_ID}'];
echo"
<FORM ACTION='send.php' METHOD=POST>
<TABLE BORDER=0>
//я так понимаю тему человек изменить не должен? поэтому я её уберу.
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name='mes' cols=40 rows=5></textarea></TD></TR>
<TR>
<TD colspan=2 align=center>
<input type='hidden' value='$theme' name='$PRODUCTS_ID'>
<input type=submit value='Отправить'> <input type=reset value='Очистить'></TD></TR>
</TABLE></FORM>";
?>


send.php
<?
$to = "mail@bova-art.de";
$sub =$_POST['{$PRODUCTS_ID}'];
$mess=$_POST['mes'];
mail($to,$sub,$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено";
header('Refresh: 3; URL=/product_info.php?products_id={$PRODUCTS_ID}'); // - собственно редирект, *.php - это то файл в котором находится 'Задать вопрос'..
?>

pakman 06.08.2010 20:04

да я так сказал..но таким образом как вы расширения менять нельзя..вы просто напросто получаете или двойное расширение или ещё какуенибудь фигню..скачайте PsPad сделайте как я сказал и уберите {}:)
ааааа что вы сделали?:)
<a href='contact.php?{$PRODUCTS_ID}={$PRODUCTS_ID}'> �адать вопрос</a> - это вообще чушь, так как перед именем переменной стоит '$'!:)

seva_81 06.08.2010 20:09

Цитата:

Сообщение от pakman (Сообщение 66647)
да я так сказал..но таким образом как вы расширения менять нельзя..вы просто напросто получаете или двойное расширение или ещё какуенибудь фигню..скачайте PsPad сделайте как я сказал и уберите {}:)

ок, хорошо, спасибо, сейчас попробую.

Цитата:

или там загружен фрэйм с расширением .html?
Там можно выбирать шаблон для каждого товара отдельно, и в ссылке не узнаешь как называется шаблон и какое расширение он имеет, но на самом деле html я переименовал его php и все работает..
Цитата:

и уберите {}:)
ааааа что вы сделали?:)
<a href='contact.php?{$PRODUCTS_ID}={$PRODUCTS_ID}'> �адать вопрос</a> - это вообще чушь, так как перед именем переменной стоит '$'!:)
Так если я уберу скобки то ID не работает вообще, вы посмотрите по ссылке.

Сейчас гляньте, первая точка это без скобок, а вторая со скобками.

pakman 06.08.2010 20:18

Цитата:

Сообщение от seva_81 (Сообщение 66648)
Там можно выбирать шаблон для каждого товара отдельно, и в ссылке не узнаешь как называется шаблон и какое расширение он имеет

но когда вызывается iframe там же адрем на него указывается и расширени!
<iframe width="364" height="210" src="*.html"></iframe>

Цитата:

Сообщение от seva_81 (Сообщение 66648)
Сейчас гляньте, первая точка это без скобок, а вторая со скобками.

В таком случае сделайте так:
<a href='contact.php?PRODUCTS_ID={$PRODUCTS_ID}'>задать вопрос</a>
// скопируйте это и у вас должно получиться:)

seva_81 06.08.2010 20:27

Цитата:

Сообщение от pakman (Сообщение 66649)
но когда вызывается iframe там же адрем на него указывается и расширени!
<iframe width="364" height="210" src="*.html"></iframe>

я не понял что имеется в виду, фрейм я пробовал сам вставлять, но не получалось определить ID.
Цитата:

В таком случае сделайте так:
<a href='contact.php?PRODUCTS_ID={$PRODUCTS_ID}'>задать вопрос</a>
// скопируйте это и у вас должно получиться:)
Не помогает:
Цитата:

Ваше сообщение с темой и текстом: 777
отправлено
Warning: Cannot modify header information - headers already sent by (output started at /home/s/public_html/bov/send.php:6) in /home/s/public_html/bov/send.php on line 7
Что у меня внутри:
send.php
<?
$to = "майл@майл.ру";
$sub =$_POST['{$PRODUCTS_ID}'];
$mess=$_POST['mes'];
mail($to,$sub,$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено";
header('Refresh: 3; URL=http://сайт.ру/product_info.php?products_id={$PRODUCTS_ID}'); // - собственно редирект, *.php - это то файл в котором находится 'Задать вопрос'..
?>


contact.php
<?
$theme=$_GET['$PRODUCTS_ID'];
echo"
<FORM ACTION='send.php' METHOD=POST>
<TABLE BORDER=0>
//я так понимаю тему человек изменить не должен? поэтому я её уберу.
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name='mes' cols=40 rows=5></textarea></TD></TR>
<TR>
<TD colspan=2 align=center>
<input type='hidden' value='$theme' name='$PRODUCTS_ID'>
<input type=submit value='Отправить'> <input type=reset value='Очистить'></TD></TR>
</TABLE></FORM>";
?>


Ну и в шаблоне:
<a href='contact.php?$PRODUCTS_ID={$PRODUCTS_ID}'>1</a>

pakman 06.08.2010 20:29

потому что вы не скопировали а изменили..а я сказал чтобы скопировали..

pakman 06.08.2010 20:30

кстати у меня и без {} работает если всё нормально сделано:)

pakman 06.08.2010 20:32

ну вот и сравните мою и свою гиперсылку..так сказать "найдите отличия":)

pakman 06.08.2010 20:37

и уберите {} в файлах connect и send. Нельзя их ставить где попало!

seva_81 06.08.2010 20:37

Цитата:

Сообщение от pakman (Сообщение 66654)
ну вот и сравните мою и свою гиперсылку..так сказать "найдите отличия":)

Нашел см. под номером 2, но только все-равно на почту приходят сообщения без темы, то есть не работает получается :cray: .

Убрал скобки, все тот же результат:
Цитата:

Ваше сообщение с темой и текстом: ---
отправлено
Warning: Cannot modify header information - headers already sent by (output started at /.................

pakman 06.08.2010 20:41

ошибка у вас изза неправильного редиректа..кстате пока закавычите его..и потом, вы убрали {} или нет в файле send.php???!

pakman 06.08.2010 20:44

тогда ещё раз покажите мне файлы contact и send

seva_81 06.08.2010 20:44

Цитата:

Сообщение от pakman (Сообщение 66657)
ошибка у вас изза неправильного редиректа..кстате пока закавычите его..и потом, вы убрали {} или нет в файле send.php???!

send.php
<?
$to = "mail@domain.ru";
$sub =$_POST['$PRODUCTS_ID'];
$mess=$_POST['mes'];
mail($to,$sub,$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено";
// - header('Refresh: 3; URL=site.ru/product_info.php?products_id={$PRODUCTS_ID}'); // - собственно редирект, *.php - это то файл в котором находится 'Задать вопрос'..
?>


Файл contact.php
<?
$theme=$_GET['$PRODUCTS_ID'];
echo"
<FORM ACTION='send.php' METHOD=POST>
<TABLE BORDER=0>
//я так понимаю тему человек изменить не должен? поэтому я её уберу.
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name='mes' cols=40 rows=5></textarea></TD></TR>
<TR>
<TD colspan=2 align=center>
<input type='hidden' value='$theme' name='$PRODUCTS_ID'>
<input type=submit value='Отправить'> <input type=reset value='Очистить'></TD></TR>
</TABLE></FORM>";
?>

pakman 06.08.2010 20:46

строчку <input type='hidden' value='$theme' name='$PRODUCTS_ID'>
измените на <input type='hidden' value='$theme' name='PRODUCTS_ID'>

seva_81 06.08.2010 20:48

Цитата:

Сообщение от pakman (Сообщение 66660)
строчку <input type='hidden' value='$theme' name='$PRODUCTS_ID'>
измените на <input type='hidden' value='$theme' name='PRODUCTS_ID'>

Не помогает :-?

pakman 06.08.2010 20:49

строчку $theme=$_GET['$PRODUCTS_ID'];
измените на $theme=$_GET['PRODUCTS_ID'];
я же вам дал начальный код а вы его почти весь поменяли со своими {} всех запутали:)

pakman 06.08.2010 20:51

в обработчике send тоже поменяйте $sub =$_POST['$PRODUCTS_ID'];
на $sub =$_POST['PRODUCTS_ID'];

seva_81 06.08.2010 20:54

Цитата:

Сообщение от pakman (Сообщение 66663)
в обработчике send тоже поменяйте $sub =$_POST['$PRODUCTS_ID'];
на $sub =$_POST['PRODUCTS_ID'];

Не работает, видать этот ID форма не принимает, хотя сверху гляньте ссылка на обычную программу, там все работает

pakman 06.08.2010 20:56

ещё раз покажите ваши contact and send...

seva_81 06.08.2010 20:58

Цитата:

Сообщение от pakman (Сообщение 66666)
ещё раз покажите ваши contact and send...

контакт
<?
$theme=$_GET['$PRODUCTS_ID'];
echo"
<FORM ACTION='send.php' METHOD=POST>
<TABLE BORDER=0>
//я так понимаю тему человек изменить не должен? поэтому я её уберу.
<TR>
<TD colspan=2>
Сообщение: <BR><textarea name='mes' cols=40 rows=5></textarea></TD></TR>
<TR>
<TD colspan=2 align=center>
<input type='hidden' value='$theme' name='PRODUCTS_ID'>
<input type=submit value='Отправить'> <input type=reset value='Очистить'></TD></TR>
</TABLE></FORM>";
?>


зенд
<?
$to = ".@.";
$sub =$_POST['PRODUCTS_ID'];
$mess=$_POST['mes'];
mail($to,$sub,$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено";
// - header('Refresh: 3; URL=/product_info.php?products_id={$PRODUCTS_ID}'); // - собственно редирект, *.php - это то файл в котором находится 'Задать вопрос'..
?>

pakman 06.08.2010 20:59

ну я же вам написал! измените
$theme=$_GET['$PRODUCTS_ID'];
на $theme=$_GET['PRODUCTS_ID'];
в контакт пхп

seva_81 06.08.2010 21:06

Цитата:

Сообщение от pakman (Сообщение 66669)
ну я же вам написал! измените
$theme=$_GET['$PRODUCTS_ID'];
на $theme=$_GET['PRODUCTS_ID'];
в контакт пхп

странно, вроде менял :blink: , сейчас все работает :) :dance:
Спасибо за выдержку!
Есть PP?

pakman 06.08.2010 21:08

откавыч редирект...кстате можете поставиь мне плюсик к карме?:) у меня хотябы один будет:)

seva_81 06.08.2010 21:14

Цитата:

Сообщение от pakman (Сообщение 66672)
откавыч редирект...кстате можете поставиь мне плюсик к карме?:) у меня хотябы один будет:)

С удовольствием поставил, попробовал еще поставить не получается :)

Теперь буду пробовать, делать чтобы открывалось во всплывающем окне, а то так не очень.

Еще есть вопросик, а есть возможность сделать чтобы в сообщении (в теле письма) уже было написано начало сообщения, например ссылка на продукт?

pakman 06.08.2010 21:14

header('Refresh: 3; URL=product_info.php?products_id=$PRODUCTS_ID');
цифра 3 указывает сколько секунд редирект будет тебя ждать.. можешь её менять по своему желанию:) спасибо за плюсик:) чтобы использовать всплывающее меню тут понадобится уже js с виндами:)во ссылка http://javascript.ru/window.open , а япошёл спать:)

pakman 06.08.2010 21:21

щас напишу:)

pakman 06.08.2010 21:23

<?
$to = ".@.";
$sub =$_POST['PRODUCTS_ID'];
$mess="<a href=http://bova-art.de/product_info.php?products_id=$sub>Перейти на страницу товара</a> ";
$mess=$mess.$_POST['mes'];
mail($to,$sub,$mes);
echo "Ваше сообщение с темой  $sub и текстом: $mes <br> отправлено";
header('Refresh: 3; URL=product_info.php?products_id=PRODUCTS_ID'); 
?>

попробуй так:)


Часовой пояс GMT +3, время: 15:45.