Как получить значение из всплывающего окна в родительское окно, щелкнув мышью по выбору базы данных?

  • Автор темы aniaenergy
  • 47
  • Обновлено
  • 15, May 2024
  • #1
Изначально было так и работало до тех пор, пока краулеры не перестали его поддерживать, и даже номер возврата после клика у меня туда пришел:

var retVal=""var valReturned;function openModal(){

retVal=showModalDialog('stranky/modal.php');

valReturned=retVal;

document.getElementById("заказник").value=valReturned;

В модальном окне нажимал только так и это работало и работает даже в исторической версии веб-браузера по сей день, но новые браузеры уже не открывают: '.$data["id"].'< /тд>

К сожалению, я не могу модифицировать его для работы в новых браузерах, поэтому прошу совета: просто нажмите на значение, и оно перенесется, а окно по щелчку значения само закроется.

Поэтому я хотел как-то изменить его и использовать это:

вар retVal=""

вар valReturned;

функция openModal() {

retVal = window.open("stranky/modal.php", "_blank", "width=950,height=600");

valReturned=retVal;

document.getElementById("zakaznik").value=valReturned;

//alert('Возвращён следующий текст: "'+valReturned+'"');

}

Заказ?k:

во всплывающем окне (modal.php) у меня есть это:

'.$data["id"].'< /тд>

окно у меня откроется нормально, я могу нажать на выбранное значение из базы данных - после нажатия на выбранное поле окно закроется, но поле заказника формы в родительском окне не получает значение, только при открытии всплывающего окна сформирует [объект Окно] заказник.

Мне кажется, я что-то упускаю, и мне кажется, что это неправильно.

может кто-нибудь подсказать, как это должно выглядеть? Спасибо.

aniaenergy


Рег
21 Mar, 2013

Тем
1

Постов
2

Баллов
12
  • 21, May 2024
  • #2
Я понимаю Ваше возмущение по поводу кода, но это только у меня и там только фильтр с конкретного IP, поэтому с другого IP его нет.

Мне хотелось помощи, а не указаний, как должно быть.

Я просто хотел отредактировать его, чтобы мне не приходилось использовать старый браузер, в котором он все еще работает.

Ваши комментарии бесполезны, если я не знаю, как это сделать.

Я просто хотел вернуть значение из базы данных, не более того.
 

alex15


Рег
18 Nov, 2013

Тем
0

Постов
1

Баллов
1
  • 03, Jun 2024
  • #3
СВЯТАЯ ХАННА.

Ладно, тому, кто это написал для вас, пора убрать пламя с клавиатуры и заняться чем-нибудь менее опасным, например макраме.

Это настолько небезопасная крушение кода, что я мог бы полностью взломать ваш сайт удаленно с помощью внедрения запросов.

Тем более, НИ ОДИН современный сервер не должен даже допускать ЗАПУСК этого кода! Видеть это?
 $dotaz1 = mysql_query("SELECT od, do FROM rezervace WHERE chatka ='".$_GET["chatka"]."'
Код (разметка): Да... НЕТ!. Еще пятнадцать лет назад мы были предполагаемый чтобы прекратить использование функций PHP mysql_ для доступа к MySQL.

Восемь лет назад они поместили в онлайн-руководство гигантские красные предупреждающие рамки, призывающие нас прекратить их использование.

Начиная с версии PHP 5.5 шесть лет назад использование указанных функций вызывало предупреждение, а с версии PHP 7 эти функции больше не существуют. Посмотрите, кому значения $_GET и $_POST вставляются непосредственно в строки запроса? Это точка взлома.

«Безопасные» запросы должны либо очищать эти значения, либо лучше использовать интерфейсы PDO или mysqli для выполнения так называемой подготовки/выполнения. Даже волей-неволей смешивание верблюжьего регистра с вещами, которые даже не ДЕЙСТВИТЕЛЬНЫ ни в чем, кроме строчных букв.

Я не уверен, как это вообще могло работать.

Был ли PHP когда-либо нечувствителен к регистру? Если так, то я еще не использовал его... что было бы страшно, поскольку я начал работать с ним еще в 2000 году.

Уже на этом основании код, который вы представили, следует протащить за дровяной сарай с .30-06 и положить, как старый крикун.

... и это еще до того, как мы поговорим о разметке в стиле 1997 года, которая является семантической тарабарщиной и переворачивает голову с точки зрения удобства использования и доступности.

Таблица вокруг нетабличных данных, бессмысленная или несуществующая семантика, невозможность экранирования данных на стороне клиента, позволяющая внедрять эксплойты XSS, статические сценарии в разметке.

Тот человек, который «больше недоступен», не имел права написать ни единой строки кода, и я немного удивлен, что вы не были полностью захвачены взломщиками. Если остальная часть вашего сайта будет следовать этому шаблону, вы собираетесь НУЖДАТЬСЯ пригласить кого-нибудь, чтобы переделать ВСЕ с нуля.

До этого времени вы каждый день рискуете быть взломанным и, вероятно, отталкиваете от себя большое количество потенциальных пользователей. Хорошо, что вы не указали URI сайта, это магнит для инфекций, вредоносных программ, взломщиков и тому подобного.
 

T--34


Рег
14 Jun, 2014

Тем
0

Постов
2

Баллов
2
  • 08, Jun 2024
  • #4
Ваш код не работает на моем сайте, он не возвращает значение:
https://kratochvilovi.net/ubytovani/admin/stranky/parent.html

если я использую его в форме на исходной странице, он выбрасывает эту ошибку:
Ошибка анализа: синтаксическая ошибка, неожиданный «заказник» (T_STRING), ожидание «,» или «;» в /volume1/web/kratochvilovi.net/ubytovani/admin/stranky/pridat_zaznam.php В сети 127 Во вложении высылаю оригинальные страницы, где нужно ввести его в эксплуатацию. Я понимаю, что для кого-то это пустяковое дело, но для того, кто не программирует, это проблема.

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

Заранее благодарю вас за ваше желание и помощь.
 

МистерШизоид


Рег
16 Apr, 2014

Тем
1

Постов
2

Баллов
12
  • 08, Jun 2024
  • #5
привет, Если вам нужно продолжать использовать эти окна, я думаю, вам стоит попробовать Окно.postMessage()

но если я могу предположить, что проще сделать всплывающее окно частью страницы, вам не кажется? Хендра
 

WatcherOfTheSun


Рег
26 Oct, 2014

Тем
0

Постов
3

Баллов
3
  • 08, Jun 2024
  • #6
О, вы хотели бы опубликовать эту тему на подфоруме по адресу https://forums.digitalpoint.com/forums/programming.103/

, возможно? В противном случае, если вы предпочитаете разобраться с этим самостоятельно, давайте посмотрим, работает ли эта ссылка в вашем браузере(ах): http://hd0.000webhostapp.com/pages/parent-modal/index.html

index.html следующим образом:
 <!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>modal</title>

</head>

<body>

<table>

<tr>

<td><a href="#" onclick="closeModalToReturnValue(this)">data1</a></td>

<td><a href="#" onclick="closeModalToReturnValue(this)">data2</a></td>

<td><a href="#" onclick="closeModalToReturnValue(this)">data3</a></td>

</tr>

</table>

</body>

<script>

'use strict';

var host = '[URL='https://lumtu.com/yti/bwYYwb21odHRwOi8vaGQwLjAwMHdlYmhvc3RhcHAuHch']http://hd0.000webhostapp.com[/URL]';

function closeModalToReturnValue(el){

window.opener.postMessage(el.textContent, host);

window.close();

}

</script>

</html>
HTML: модальный.html:
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>parent</title> </head> <body> <table> <tr> <td> <input id="zakaznik" type="text" name="zakaznik" value="$_POST[zakaznik]"> <input class="odeslat" type="button" name="vybrat" value="Vybrat" onclick="openModalAndUponCloseReturnValueTo('zakaznik')"> </td> </tr> </table> <script> 'use strict'; var idForModal = -1, host = '[URL='https://lumtu.com/yti/bwYYwb21odHRwOi8vaGQwLjAwMHdlYmhvc3RhcHAuHch']http://hd0.000webhostapp.com[/URL]'; window.addEventListener('message', function(ev){ if(ev.origin !== host) return; else{ var el = document.getElementById(idForModal); if(!el) alert('can not get element of id:' + idForModal); else el.value = ev.data; } }, false); function openModalAndUponCloseReturnValueTo(id){ idForModal = id; var modalWindow = window.open('modal.html', 'modal', 'width=400,height=300'); if(modalWindow !== null && !modalWindow.closed) modalWindow.focus(); } </script> </body> </html>
HTML: Обратите внимание, что вам необходимо изменить хозяин переменная в обоих HTML-файлах на вашем текущем хосте. Рекомендации:
 

Евгений Тасканов


Рег
31 May, 2012

Тем
1

Постов
2

Баллов
12
  • 11, Jun 2024
  • #7
1) действительно ли этому «модальному» режиму нужен JavaScript?

2) Что, черт возьми, делает и его табличные данные ... а тем более, где твой проклятый тег LABEL?

3) Что делает ЛЮБЫЕ из этих табличных данных?

4) сейчас не 1998 год, хватит говорить «language="javaScript". Кроме того, сейчас не 2008 год, вы можете перестать говорить type="text/javascript".

5) то, о чем вы просите, является нарушением безопасности, поскольку передача данных между окнами/вкладками запрещена ПО ВЕЗКИМ ПРИЧИНАМ.

Вероятно, вам следует использовать правильный модальный диалог, созданный на текущей странице, вместо использования window.open, как будто это все еще 2003 год.

Черт, если все, что вы делаете, это пытаетесь вернуть статические данные из вашего модального окна, вам, вероятно, даже не нужно включать JavaScript в само модальное окно, просто для передачи значения!

Где у вас кнопка с мусором «onclick» в стиле 1990-х?

 

<input type="checkbox" id="toggle_zakaznikModal" class="toggle" hidden>

<div class="modal">

<label for="toggle_zakaznikModal"></label><!-- this is the full-size close -->

<div>

<label for="toggle_zakaznikModal"></label><!-- inner close -->

<!-- your modal content here -->

</div>

<!-- .modal --></div>
Код (разметка): Затем для вашего модального окна — на той же странице, а не в виде отдельного файла — прямо перед
 <label for="toggle_zakaznikModal">Vybrat</label>
Код (разметка): чтобы ваш сценарий закрывал модальное окно при выборе параметров, просто установите флажок в неустановленное положение.

Внешний вид модального окна затем можно полностью контролировать с помощью CSS как части текущей страницы с помощью «.toggle:checked + .modal». Это также можно сделать, используя href="#" и element:target. См. мои статьи о мобильных меню и модальных диалогах здесь:
https://cutcodedown.com/tutorial/mobileMenu

https://cutcodedown.com/tutorial/modalDialogs

На которых показаны обе техники.

Для этого я бы использовал метод input:checked страницы мобильного меню со стилем модальных диалогов, поскольку он кажется частью формы. Тем не менее, у меня действительно возникнет искушение сделать это набором переключателей.

если они нажмут на параметры модального окна, должен ли пользователь по-прежнему иметь возможность вводить другую информацию? Кажется, это неправильно.
 

Poltish


Рег
27 Mar, 2013

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно