Создание всплывающего окна из HTML, а не из файла - PullRequest
0 голосов
/ 28 ноября 2008

У меня есть страница php, которая отображает строки из базы данных mysql в виде таблицы. Одно из полей содержит HTML-разметку, и я бы хотел, чтобы эта строка была кликабельной, а HTML-файл открывался бы в новом всплывающем окне. Каков наилучший способ сделать это, и есть ли способ сделать это без записи HTML в файл?

edit: эта php-страница на самом деле является частью приложения ajax, так что это не проблема. Я не хочу использовать jquery, поскольку мне пришлось бы переписать приложение.

редактирование:

Я повторил попытку, используя приведенный ниже пример, и потерпел неудачу. Я знаю, что мой скрипт-тег неверен, но сейчас я просто повторяю row2, поэтому я думаю, что моя логика неверна до того, как она попадет в JavaScript.

$sql="SELECT * FROM Auctions WHERE ARTICLE_NO ='$pk'";
$sql2="SELECT ARTICLE_DESC FROM Auctions WHERE ARTICLE_NO ='$pk'";
$htmlset = mysql_query($sql2);
$row2 = mysql_fetch_array($htmlset);
echo $row2;
/*echo '<script> child1 = window.open ("about:blank")
child1.document.write("$row2['ARTICLE_DESC']");
child1.document.close()*/

Ответы [ 4 ]

4 голосов
/ 28 ноября 2008
child1 = window.open ("about:blank")
child1.document.write("Moo!");
child1.document.close()
0 голосов
/ 28 ноября 2008

если данных много, стоит подумать о загрузке их через ajax при просмотре, чтобы сохранить выбор и отправку пользователю при каждой загрузке страницы - что было бы довольно просто с чем-то вроде jquery, как уже предлагалось. *

0 голосов
/ 28 ноября 2008

Я бы предложил использовать библиотеку Javascript, такую ​​как jQuery, поскольку она упрощает этот тип кода и совместима с различными браузерами.

$(document).ready( function() {

$('#clicker').click( function() {
    myWindow=window.open('','','width=200,height=100')
    myWindow.document.write($("#content"));
    return false;
});

});

HTML будет:

 <table>
    <tr>
       <td><div id="clicker">Click Here</div></td>
       <td><div id="content">This is the content</div></td>
     </tr>
 </table>
0 голосов
/ 28 ноября 2008

Если вам не требуется окно браузера (это предложение включает модальное окно css), вы можете рассмотреть один из вариантов «лайтбокса».

Thickbox может использоваться для загрузки встроенного содержимого со страницы в модальное окно. Ссылка содержит демонстрацию / подробности о том, как реализовать встроенный контент, а также другие варианты.

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