LINUX.ORG.RU

фрейм но не фрейм

 , ,


0

1

Есть ли возможность завернуть часть кода _текущей_ страницы во фрейм? что бы было не так

<iframe src="banner.html" width="468" height="60" align="left">
    Ваш браузер не поддерживает плавающие фреймы!
 </iframe>
а так
<iframe width="468" height="60" align="left">
    <?php
     какой то код
    ?>
 </iframe>
аналог кнопки «править» как на ЛОР хочу сделать, но только что бы открывалось не на новой странице, а открывалось на текущей странице для редактирования данное сообщение

★★

Последнее исправление: Martin256 (всего исправлений: 1)

Ответ на: ЯННП от Kalashnikov

Сейчас опишу что хочу получить в итоге, HTML и PHP знаю на очень поверхностном уровне, сижу изучаю. Делаю что то типо движка для блога. Хочу сделать чтобы возле сообщения была кнопка «Править» и при нажатии этой кнопки не открывалась новая страница, а открывалась форма для редактирования сообщения. Как это можно реализовать? Можно ли как то для каждого сообщения формировать фрейм? Тогда бы проблем не было. Предполагаю что этого сделать нельзя, и единственный выход это что то на яве пилить, чего мне не хочется.

Martin256 ★★
() автор топика
Ответ на: комментарий от Martin256

тебе поможет перегрузка страницы, либо JS

r0ck3r ★★★★★
()
Ответ на: комментарий от Martin256

Можно ли как то для каждого сообщения формировать фрейм?

Не делай этого, если не хочешь зла пользователям.

единственный выход это что то на яве пилить

В javascript из общего с явой — 4 буквы в названии. Да, если хочешь без перезагрузки страницы — через ajax.

x3al ★★★★★
()
Ответ на: комментарий от Martin256

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

trashymichael ★★★
()
Ответ на: комментарий от Martin256

например, ты можешь для каждого поста генерировать эту форму в момент генерации страницы, просто не сразу ее показывать, а кнопкой править открывать ее

trashymichael ★★★
()
Ответ на: комментарий от Martin256

можешь наприсать крутой одностраничник и генерировать форму по требованию, загружая контент из роутов, а фреймом будет обычный div

trashymichael ★★★
()
Ответ на: комментарий от Kalashnikov

надо именно php то что запись в бд будет, поэтому и думал что фрем, хотя ересь какую то думал, уже не важно, так как реализовал уже

Martin256 ★★
() автор топика
Ответ на: комментарий от trashymichael

сделал так

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Моя первая страница сверстанная блоками</title>
<?php
		$link = mysql_connect('68.178.137.180', 'martin256', 'IYzW5254!'); //подключаемся к бд
		mysql_set_charset('utf8', $link); //устанавливаем кодировку
		//Код вывода блога из БД
		$sql_blog = "select `id`, DATE_FORMAT(`date`, '%d %M %Y %H:%i') as date, `title`, `text` from martin256.blog ORDER BY date DESC"; //пишем код запроса
		$result_blog = mysql_query("$sql_blog")  or die(mysql_error()); //делаем запрос
		$b = mysql_num_rows ($result_blog )
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"type="text/javascript"> </script>
<script type="text/javascript">
	$(document).ready(function(){
	$('.splLink').click(function(){
	$(this).parent().children('div.splCont').toggle('normal');
	return false;
	});
	});
<?php
$n=1;
while($n <= $b)
{
echo "
$(document).ready(function(){
	$('.splLink" . $n ."').click(function(){
	$(this).parent().children('div.splCont" . $n ."').toggle('normal');
	return false;
	});
	});
";
$n++;
}
?>
</script>
<style type="text/css"> 
<!-- 
body  {
    color: #000000;
	padding:0px;
	margin:0px;
}
.cbody #container { 
  background: #FFFFFF;
  position: relative; /* относительная позиция отцентрует блок относительно левого и правого отступов*/
  width: 1024px; /* используем на 20px меньше из полных 800px ширины это позволит избежать проблем с горизонтальной полосой прокрутки в браузерах Chrome */
  margin: 0 auto; /* параметр auto в союзе с width центрует страницу*/
  text-align: left; /* это заменяет text-align: center на элементе body. */
  height: 768px;
}
.cbody #header {
  position: absolute;
  height: 30px;
  left: 200px;
  width: 824px;
  padding: 0 0px 0 0px; /* дополнительные отступы слева и снизу для красоты. */
  background-color: #33CCFF;
}
.cbody #sidebar1 {
  position: absolute;
  top: 0px; /* смещение сверху на высоту шапки */
  left: 0px; /* положение слева */
  width: 200px; /* ширина колонки, фоновый цвет будет присутствовать только в пределах блока */
  height: 738px; /* высота колонки */
  padding: 0px 0px 0px 0px; /* отступы */
  background-color: #d5d5d5;
}
.cbody #mainContent { 
  position: absolute;
  top: 30px; /* смещение сверху на высоту шапки */
  left: 200px; /* положение слева */
  width: 824px; /* ширина колонки, фоновый цвет будет присутствовать только в пределах блока */
  height: 738px; /* высота колонки */
  padding: 0px 0px 0px 0px; /* отступы */
  background-color: #ffffff;
}
--> 
p0 {
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    font-size: 8pt; /* Размер шрифта в пунктах */ 
   }
.splCont{display:none; padding:3px 5px;}
<?php
$n=1;
while($n <= $b)
{
echo '
.splCont' . $n++ . '{display:none; padding:3px 5px;}';
}
?>
</style>
</head>
		<?php
		if( isset( $_POST['submit'] ) )
		{
			$title = $_POST["title"];
			$text = $_POST["text"];
			$sql_add = "INSERT INTO martin256.blog (`title`,`text`) values ('$title', '$text')";
			$result_add = mysql_query($sql_add);
			if($result_add == 'true') 
				{echo "Ваши данные успешно добавлены";}
				else{echo "Ваши данные не добавлены";}
				echo $sql_add;
		}
		?>
<body class="cbody">
  <div id="container">
    <div id="header"></div>
    <div id="sidebar1">
		<a href="http://martin256.org/"><img src="/files/images/martin/KhpNoch5LEc.jpg" width="200" height="200"></img></a>
		<?php
		//Код вывода меню из БД
		$sql = 'select `id`, `text`, `url` from martin256.menu'; //пишем код запроса
		$result = mysql_query("$sql")  or die(mysql_error()); //делаем запрос
		//рисуем меню
		while($row = mysql_fetch_array($result))
		{
			echo '<p><a href="' . $row['url'] . '">' . $row['text'] . '</a></p>';
		}
		?>
	</div>
	<div id="mainContent">
		<button href="javscript://" class="splLink">Создать пост</button> 
		<div class="splCont">
		<form action="" method="post">
			<p><h2>Заголовок</h2></p>
			<p><input type="text" name="title" size="40"></p>
			<p>Текст</p>
			<p><textarea name="text" rows="10" cols="90"></textarea></p>
			<p><input type="submit" name="submit" value="Отправить">
			<input type="reset" value="Очистить"></p>
		</div>
		<?php
		$n = 1;
		//рисуем содержимое бд
		while($row_blog = mysql_fetch_array($result_blog))
		{
			echo '<h2>' . $row_blog['title'] . '</h2>';
			echo '<p0>' . $row_blog['date'] . '</p0>';
			echo '<p>' . $row_blog['text'] . '</p>';
			echo '<button href="javscript://" class="splLink' . $n .'">Быстрое редактирование</button>'; 
			echo '<div class="splCont' . $n .'">';
			echo '<form action="" method="post">';
			echo '<p><input type="text" name="title" size="40" value="' . $row_blog['title'] . '"></input></p>';
			echo '<p><textarea name="text" rows="10" cols="90">' . $row_blog['text'] . '</textarea></p>';
			echo '<p><input type="submit" name="submit" value="Отправить">';
			echo '</div>';
			$n++;
		}
		?>
	</div>
  </div>
<?php
		mysql_close($link); //закрываем подключение
?>
</body>
</html>

Martin256 ★★
() автор топика

Фреймы в наше время нужны лишь для жабоскриптных оберток хитроумных, да вместо XSS (и то, не факт, что сработает). А в данном случае достаточно обычных жабоскрипта с ajax.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Martin256

Use yii (и другие). Хотя бы посмотреть, как должен быть структурирован проект.

anonymous
()
Ответ на: комментарий от ritsufag

а как лучше сделать? сам предполагаю что, что то тут не так.

Martin256 ★★
() автор топика
Ответ на: комментарий от funeralismatic

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

Martin256 ★★
() автор топика
Ответ на: комментарий от funeralismatic

в HTML5 iframe депрекейтед

Кто тебе такое сказал? Без iframe жизнь станет скучной.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от funeralismatic

в HTML5 iframe депрекейтед

Это в xhtml он был deprecated и предлагалось внешние страницы вставлять через <object type=«text/html» блаблабла="..." />. А в хтмл5 он снова появился.

INFOMAN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.