Здравствуйте, помогите новичку разобраться с Bootstrap сама кнопка Код (PHP): <a data-toggle="modal" data-target="#myModal" onclick="('mail.php?id={$email.id}')"> само модальное окно Код (PHP): <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="false">×</span></button> <h4 class="modal-title" id="myModalLabel">{$subject}</h4> </div> <div class="modal-body">{$message}</div> <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Закрыть</button> </div> </div> </div> </div> только почему то не выводится информация переменной {$subject} и {$message} может ещё нужен какой то скрипт js? пожалуйста помогите разобраться ребят уже неделю с этим вожусь((( а если ввожу в индекс строке site.ru/mail.php?id=82, то информация выводится на новой странице (только без модального окна) * код заключай в тег Код ( (Unknown Language)): [b]][[/b][b]/code][/b][/color]
denis01 это вывод сообщения которое нам приходит на сайт в письма при переходе на ссылку нам открывается mail.php?id=82 82 - произвольное число(смотря какое письмо открываем) вот пример http://sg.uploads.ru/pw14j.png картинка большая получается поэтому просто ссылка у меня не передается в модальное окно только переменные {$subject} и {$message}
С помощью bootstrap modal можно в окне открыть mail.php?id=82 через iframe, а в iframe если он на том же домене, добраться через javascript iframe children. Ещё в модальное окно можно просто подгрузить содержимое mail.php?id=82 и его через DOM модифицировать.
denis01 а как это? Добавлено спустя 1 минуту 16 секунд: я думал так сделать Код (PHP): $(".mailMessages__subject").click(function (e) { e.preventDefault(); var me = this, meta = $(this).metadata(); if (meta.id === undefined) { return false; } var id = meta.id; var display = function (mail) { var mailTitle = '<p><strong>Пользователь:</strong> ' + (username ? username : '<неизвестно>' ) + '</p>' + '<p><strong>Тема:</strong> ' + (subject ? subject : '<без темы>' ) + '</p>' + '<p><strong>От кого:</strong> <span class="mail__from"></span></p>' + '<p><strong>Кому:</strong> ' + (toEmail ? toEmail : '<неизвестно>' ) + '</p>' + (toEmails ? '<p><strong>Копия:</strong> ' + toEmails + '</p>' : ''); var $title = $(mailTitle); $title.find(".mail__from").text(mail.sender ? mail.sender : '<без отправителя>'); var mailText = '<div style="margin-top: 25px;" id="main-doc">' + mail.text + '</div>'; bootbox.dialog({ message: mailText, title: $title, className: "wide-bootbox-modal", buttons: { main: { label: "Закрыть", className: "btn-primary" } }}); }; return false; }); ну мой вариант не работает(
https://jsfiddle.net/yLa02m0x/1/ Код (PHP): <button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button> <div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true" id="myModal"> <div class="modal-dialog modal-lg"> <div class="modal-content"> <div id="result">loading...</div> </div> </div> </div> Код (PHP): $('#myModal').on('shown.bs.modal', function (e) { $.get( "mail.php?id=1", function( data ) { $( "#result" ).html( data ); }); });
denis01 то что выводится loading.. это все понятно, мой вопрос заключался в другом ведь, как передать переменные PHP {$subject} и {$message} в модальное окно. если в модальном окне я пропишу так Код (PHP): <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="false">×</span></button> <h4 class="modal-title" id="myModalLabel">[color=#FF0000]ЗОГОЛОВОК[/color]</h4> </div> <div class="modal-body">[color=#FF0000]Привет[/color]</div> <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Закрыть</button> </div> </div> </div> </div> то модальное окно выведет Заголовок и привет, а когда стоят переменные то выводит пустое окно Код (PHP): <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="false"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="false">×</span></button> <h4 class="modal-title" id="myModalLabel">{$subject}</h4> </div> <div class="modal-body">{$message}</div> <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">Закрыть</button> </div> </div> </div> </div> вот тут пустое окно будет..
denis01 в смысле на то что нужно? мне как раз таки и нужно {$subject} и {$message} вот сам php код Код (PHP): if (isset($_SESSION['uid'])) { require "includes/smarty/Smarty.class.php"; $smarty = new Smarty(); $smarty->template_dir = "templates/" . $whmcs->get_sys_tpl_name() . "/"; $smarty->compile_dir = $templates_compiledir; $smarty->assign("template", $whmcs->get_sys_tpl_name()); $smarty->assign("LANG", $_LANG); $smarty->assign("logo", $CONFIG['LogoURL']); $smarty->assign("companyname", $CONFIG['CompanyName']); $id = $whmcs->get_req_var("id"); $result = select_query("tblemails", "", array("id" => $id, "userid" => $_SESSION['uid'])); $data = mysql_fetch_array($result); $date = $data['date']; $subject = $data['subject']; $message = $data['message']; $date = fromMySQLDate($date, "time"); $smarty->assign("date", $date); $smarty->assign("subject", $subject); $smarty->assign("message", $message); $template_output = $smarty->fetch("mail.tpl"); echo $template_output; return 1; }
smarty не заменяет {$subject} и {$message} ? добейся замены в html через smarty, а по кнопке будет открываться уже модальное окно
denis01 модальное окно у меня открывается вот что получается а если допустим словами напишу вместо {$subject} Зоголовок, и вместо {$message} привет, то вот а в Smarty.class.php хранится библиотека, там нету {$subject} и {$message} Код (PHP): */ class Smarty { /**#@+ * Smarty Configuration Section */ /** * The name of the directory where templates are located. * * @var string */ var $template_dir = 'templates'; /** * The directory where compiled templates are located. * * @var string */ var $compile_dir = '/includes/templates_c'; /** * The directory where config files are located. * * @var string */ var $config_dir = 'configs'; /** * An array of directories searched for plugins. * * @var array */ var $plugins_dir = array('plugins'); /**
так используя smarty с помощью {$subject} и {$message} ты можешь эти значения заменить, на свои http://www.smarty.net/docsv2/en/language.syntax.variables.tpl http://www.smarty.net/docsv2/ru/api.assign.tpl
сейчас гляну ссылки, которые Вы выложили _____ ну это все у меня есть, то что в ссылках и переменные {$subject} и {$message} выводят информацию на экран, получается что все у меня работает, только если определить их в модальное окно, только в этом случае они не выводят информацию Добавлено спустя 8 минут 42 секунды: denis01 да я знаю что class большой сильно( ну там {$subject} и {$message} все равно нету
Думаю так примерно должно быть Код (PHP): <button>Показать modal0</button> <button>Показать modal1</button> <button>Показать modal2</button> <button>Показать modal3</button> <button>Показать modal4</button> <div id="modal0"></div> <div id="modal1"></div> <div id="modal2"></div> <div id="modal3"></div> <div id="modal4"></div> Добавлено спустя 1 минуту 56 секунд: это в шаблоне заменяет Код (PHP): $smarty->assign("subject", $subject); $smarty->assign("message", $message); вот это {$subject} и {$message} Добавлено спустя 2 минуты 52 секунды: index.php Код (PHP): <?php require_once('Smarty.class.php'); $smarty = new Smarty(); $smarty->assign('name', 'Катруська'); $smarty->display('index.tpl'); ?> index.tpl Код (PHP): Привет {$name} Результат будет: Привет Катруська
ну это есть у меня в PHP коде Код (PHP): $smarty->assign("subject", $subject); $smarty->assign("message", $message); мне почему то кажется что нужен просто обработчик JS, для того чтоб выводилось сообщение в модальное окно, например такое вот сама кнопка <a data-toggle="modal" data-target="#myModal" onclick="mailMessages__subject('mail.php?id={$email.id}')"> дальше обработчик, который выводит сообщения (только я не знаю как его правильно написать) Код (PHP): $(".mailMessages__subject").bind('click', function (e) { e.preventDefault(); var me = this, meta = $(this).metadata(); if (meta.id === undefined) { return false; } var id = meta.id; var display = function (mail) { var mailTitle = '<p><strong>Пользователь:</strong> ' + (username ? username : '<неизвестно>' ) + '</p>' + '<p><strong>Тема:</strong> ' + (subject ? subject : '<без темы>' ) + '</p>' + '<p><strong>От кого:</strong> <span class="from"></span></p>' + '<p><strong>Кому:</strong> ' + (toEmail ? toEmail : '<неизвестно>' ) + '</p>' + (toEmails ? '<p><strong>Копия:</strong> ' + toEmails + '</p>' : ''); var $title = $(Title); $title.find("._from").text(sender ? sender : '<без отправителя>'); var mailText = '<div style="margin-top: 25px;" id="main-doc">' + text + '</div>'; bootbox.dialog({ message: Text, title: $title, className: "wide-bootbox-modal", buttons: { main: { label: "Закрыть", className: "btn-primary" } }}); }; Добавлено спустя 55 секунд: у меня ведь не статическую фразу должно выводить, а должно выводить из БД информацию, поэтому статические фразы не подходят(((
denis01 ну она у меня и стоит) там тока обработчик нужен, я щас сайт нашел в нем сделано тоже что и я хочу, ну там обработчик стоит, делал наподобие ну у меня не плучается
есть кнопка, на неё нажали, открылось модальное окно, смотря на какую кнопку нажали в это окно подгружай mail.php?=значение_из_кнопки в модальное окно
ну вот Код (PHP): <a data-toggle="modal" data-target="#myModal" //кнопка на которую нажимаю onclick="mailMessages__subject('mail.php?id={$email.id}')"> // mailMessages__subject значение которое пытаюсь подгрузить (ну мой обработчик не работает, поэтому не подгружается) так ведь должно быть?
Вот тут можно узнать какую кнопку нажали event.relatedTarget Код (PHP): $('#myModal').on('shown.bs.modal', function (event) { console.log(event.relatedTarget); $.get( "mail.php?id=1", function( data ) { $( "#result" ).html( data ); }); }); Добавлено спустя 6 минут 29 секунд: Вот ещё пример https://jsfiddle.net/yLa02m0x/2/
автор, у тебя изначально данные не выводятся, но сам fancybox работает, как видишь. Ты в начале с ошибкой разберись, потом туда уже передавай (((((((((( :
@Виталик78 не достаточно данных, чтобы тебе помочь. Попробуй сделать всплывающее окно не используя генерацию PHP. Как будет работать, уже вставляй данные с помощью PHP.