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 раз:)

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


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