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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как зделать чтобы при нажатии на сылку открывалось маленькое inf окно

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: Хулиган   (23.06.2006 в 17:09)   письмо автору
 
   для: Бог Зайцев   (23.06.2006 в 13:46)
 

Ну, пока что меня особо не за что уважать, знаний ноль :)

Ваш вариант просто выдаёт ошибку Undefined index "senddata" и больше ничего :(
Не знаю, в чём причина, но результат такой.

Об escape: я не совсем понял, при чём тут браузер? Можно подробнее?
Как я понимаю, предполагается что-то типа echo(escape($_GET["senddata"])); - т.к. нужно передать в escape получаемое через GET. Но это же php-код, и в нем нет такой функции escape(). Это js-функция. В php ей не место, соответственно и возникает ошибка...

   
 
 автор: Бог Зайцев   (23.06.2006 в 13:46)   письмо автору
 
   для: Хулиган   (23.06.2006 в 13:04)
 

При всем моему уважении,
1.
Ваш код с моим вариантом не имеет ничего общего
2.
Мои вариант отлично передает методом POST любые данные и они корректно обрабатываются на серверной стороне
3.
Функция escape() работает во всрех браузерах, покажите код, который выдает подобную ошибку.

   
 
 автор: Хулиган   (23.06.2006 в 13:35)   письмо автору
 
   для: Бог Зайцев   (22.06.2006 в 15:36)
 

В конечном итоге newwindow.php сделал так (получение через opener):


<?php
echo($_GET["senddata"]);
?>

<script language="JavaScript">
function get_text(){
  document.form['recieve1'].value=window.opener.document.getElementById("text1").value;
}
</script>

<form name="form" action="" method="GET">
<input name="recieve1" value="" ID="recieve1">
<input type="button" value="Get It" onClick="get_text()">


Из родительского окна можно ничего не передавать.

   
 
 автор: Хулиган   (23.06.2006 в 13:04)   письмо автору
 
   для: Бог Зайцев   (22.06.2006 в 15:36)
 

При всем уважении:
1. Таки вынуждает переходить к GET, т.к. если новое окно открыто через window.open, попытка сделать echo($_POST["senddata"]); приводит к ошибке Undefined index. При GET такой ошибки нет.

3.Escape не поможет, т.к. при его использовании возникает ошибка
Call to undefined function: escape()

Вот код, попробуйте сами:


<HTML>
<HEAD>
<TITLE></TITLE>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=cp1251">
</HEAD>
<BODY>
<p>

<script language="JavaScript">
function show_form(){
  res_str=document.form['text1'].value;
  res_str='newwindow.php?senddata='+res_str;
  window.open(res_str, '',"height=300,width=400");
}
</script>


<form name="form" action="newwindow.php" method="GET">
<input name="text1" value="def & ghi" ID="text1">
<input type="button" value="Send It" onClick="show_form()">

</BODY>
</HTML>


Это второй файл (newwindow.php):


<?php
echo($_GET["senddata"]);
?>


Попробуйте также вставить в newwindow.php echo(escape($_GET["senddata"])), также можно попробовать заменить GET на POST
Ни один из способов не передаёт содержимого text1.

   
 
 автор: Бог Зайцев   (22.06.2006 в 15:36)   письмо автору
 
   для: Хулиган   (22.06.2006 в 00:35)
 

1.
Он нифига не вынуждает )
Вот укороченная версия, спер из соседнего топика.

<form target = "wow" method = "post" onsubmit = "window.open('about:blank','wow','width=100,height=80')">
<input type = submit name = "lol">
</form>

2.
Амперсанд при передаче методом get превращается в скромное %26 и уж тем более ничего не прерывает )
3.
Что б сделать %26 из амперсанда вручную нужно воспользоваться функцией
str=escape(str)

   
 
 автор: Хулиган   (22.06.2006 в 00:35)   письмо автору
 
   для: valenok   (21.06.2006 в 22:34)
 

Этот пример я тоже пробовал: он вынуждает использовать GET вместо POST в новом окне
<?php
echo($_GET["senddata"]);
?>
а с GET если в строке есть последовательность символов " &" (пробел+амперсанд), то он обрывает строку по этим символам и данные теряются. Например строка "javascript & php" будет передана как "javascript"

Тихо схожу с ума...
Что, писать данные в куки и затем в новом окне читать обратно?

   
 
 автор: valenok   (21.06.2006 в 22:34)   письмо автору
 
   для: Хулиган   (21.06.2006 в 22:29)
 

автор: Бог Зайцев (10.06.2006 в 00:40) Тут

Сначала создаем окошко в JS

window.open('http://localhost/js/','window_name','') 

Затем делаем так, что б форма отправлялась в окошко



<form action = " http://www.sitename.org/curr_vonv.php" target = window_name> 
<input name = "sum"> 
<input type = "submit"> 
</form> 



Если окно не было создано до этого через js, то откроется новое окошко )
Либо, если форма не обязательна, можно сделать и так:


<input name = "v1"> 
<input type = "button" onclick = "window.open(' http://www.sitename.org/curr_vonv.php?sum='+v1.value,'','')">

   
 
 автор: Хулиган   (21.06.2006 в 22:29)   письмо автору
 
   для: RMW   (21.06.2006 в 17:12)
 

Может есть способ воздействовать на новое окно, чтобы изменить его размеры и чтобы разворачивалось не на весь экран? Или прямо в новом окне как-то указать его размеры?

Или эта задача в принципе нерешаема на js и php?

   
 
 автор: Хулиган   (21.06.2006 в 20:16)   письмо автору
 
   для: RMW   (21.06.2006 в 17:12)
 

Смотрел в поиске, попробовал 4 разных варианта, ни один не работает.
Максимум, чего добился - это new_window.php открывается в новом окне.
А с его размерами - никак. Или размеры или передача данных, а надо и то, и другое

<script language="javascript">
//ф-ция принимает количество инпутов для проверки
function show_form(input_cnt){
  result_str="";
  for(a=1; a<input_cnt+1; a++){
    s=pad_string_left(a.toString());
    //если инпут 'count...' не пустой - запоминаем его содержимое 
    //и  содержимое связаного с ним инпута'data...'
    if (document.form1['count'+s].value !=0){
       result_str = result_str + 
                    document.form1['data'+s].value + "###" +
                    document.form1['count'+s].value + '<br>';
    }
  }
  //запихиваем в скрытый инпут результат
  document.form2['senddata'].value = result_str;
  //если данные для передачи есть - передаём
  if (result_str!=""){
     document.form2.submit();
  }
  //иначе отмена
  else {
     alert('Не заполнено ни одно поле!');
  }
}
</script>

<form name=form2 action="new_window.php" name="senddata" target="_blank" method="POST">
      <input type="hidden" name="senddata" value=""></form>

<img src="img/next.gif" class="onbutton"
     onClick="show_form(5)">


Что здесь изменить, чтобы окно было маленьким?

   
 
 автор: RMW   (21.06.2006 в 17:12)   письмо автору
 
   для: Хулиган   (20.06.2006 в 14:47)
 

Ищем в форуме по ключевым словам
form target с логикой "И"

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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