forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PHP / MySQL (http://forum.boolean.name/forumdisplay.php?f=135)
-   -   Графические рамки (http://forum.boolean.name/showthread.php?t=12799)

Ksanatos 03.07.2010 13:30

Графические рамки
 
в общем ситуация такая хочется сделать так, чтобы сначала создавалась таблица 3*3(рамку захотелось свою поставить, т.е. в крайних ячейках бг рисунки, а посеридине контент), и только потом в неё(в ячейку с контентом) пхп писал нужный мне код. Как это реализовать? Мне думается, что надо каким-то обзом менять положение курсора в тексте. Предложения типа: "сначала писать первые чейки потом контент и заключение" не принемаются, мне надо именно сначала писать рамку всю, потом уже контент.

Reizel 03.07.2010 15:44

Ответ: Задаём пхп куда писать
 
Пишешь рамку, а там где нужен контент(т.е. в ячейках) пишешь это:
<span id=ID></span>
После создания таблицы можно получить доступ к коду внутри таблиц, а именно так(на JavaScript):
document.getElementById(ID).innerHTML=your_code;
Но не советую тебе таким черезжопством заниматься.

Ksanatos 03.07.2010 15:55

Ответ: Задаём пхп куда писать
 
Цитата:

Но не советую тебе таким черезжопством заниматься.
тогда как?

Reizel 03.07.2010 17:54

Ответ: Задаём пхп куда писать
 
соответственно, по ходу записывать:
echo("<tr><td>");
//здесь эхаем что хотим, это контент :)
echo("</td></tr>");

Nord 03.07.2010 18:54

Ответ: Задаём пхп куда писать
 
На вскидку:
PHP код:

<?
$block="<div>{CONTENT}</div>";
ob_start(); //включаем буфферизацию вывода

//далее любой код, весь вывод складывается в буфер:
echo "Контент";
$block=str_replace("{CONTENT}",ob_get_contents(),$block); //заменяем  {CONTENT} на содержимое буфера

ob_end_clean(); //отключаем буфферизацию и очищаем буфер
echo $block; //выводим блок
?>


Reizel 03.07.2010 19:16

Ответ: Задаём пхп куда писать
 
он пишет про таблицу 3*3. А ваш код я не совсе понял, зачем столько мороки?
echo("<div>");
echo(ob_get_contents());
echo("</div>");
вот так можно сделать в способе Nord'a, зачем так мудрить?

Spiderman 03.07.2010 20:08

Ответ: Задаём пхп куда писать
 
Еще аяксом можно подгружать. Красивенько, с плавным проявлением

ABTOMAT 03.07.2010 20:21

Ответ: Задаём пхп куда писать
 
Цитата:

Сообщение от Ksanatos (Сообщение 152659)
в общем ситуация такая хочется сделать так, чтобы сначала создавалась таблица 3*3(рамку захотелось свою поставить, т.е. в крайних ячейках бг рисунки, а посеридине контент), и только потом в неё(в ячейку с контентом) пхп писал нужный мне код. Как это реализовать? Мне думается, что надо каким-то обзом менять положение курсора в тексте. Предложения типа: "сначала писать первые чейки потом контент и заключение" не принемаются, мне надо именно сначала писать рамку всю, потом уже контент.

То есть ты хочешь, чтобы юзер при загрузке страницы видел сначала твою таблицу, а уж потом в неё догружался контент?
С помощью PHP тут сделать никак, т.к. то, что PHP вылил в вывод, уже не изменишь (с серверной стороны)
Тут нужно делать замену текста яваскриптом.
Можно схоронить его где-нибудь, а потом по window.onload вызвать замену.
Можно и аяксом, раз такая пьянка пошла.
Но лучше такой фигнёй не страдать ;)

Ksanatos 03.07.2010 20:59

Ответ: Задаём пхп куда писать
 
ABTOMAT
Нет, мне просто надо зделать рамку для "всего", чтоб она не была ограничена, т.е. могла расширятся при надобности, и надо мне, чтоб это было легко реализовать посредством например инита функции, и последующей вставкой туда чего нибудь ещё(хотябы открытия скрытово элемента). Где-то я такое видел, это было давно и в данном случае правда... А вспомнил! или так. Там все тексты в(как её обозвать то) "зоне вывода" :) обрамляютя красивыми рамочками, мне хотелось бы таким способом все странички покрыть. Чего-то предисловий много получается, извеняюсь. В общем опять к моим тараканам в голове, хотелось бы всё это делать без особого напряга, потому что рамок будет МНОГО!! Даже ОЧЕНЬ МНОГО!!! теперь надо выбирать каким способом пользоваться в данном случае. Но всё равно всем спасибо за внимание!

Nord 03.07.2010 21:00

Ответ: Задаём пхп куда писать
 
Павел, в $block можно запихнуть всё что угодно, хоть таблицу 3x3 хоть что-то ещё, это я для примера привел. Автор написал же, что
Цитата:

Предложения типа: "сначала писать первые чейки потом контент и заключение" не принемаются
Поэтому, твой вариант не канает. Если только через JS, но про него ничего сказано не было, говорилось про PHP.

Nord 03.07.2010 21:15

Ответ: Задаём пхп куда писать
 
Ksantos, думаю, мой вариант тебе подойдет.

Ksanatos 03.07.2010 22:53

Ответ: Задаём пхп куда писать
 
Цитата:

//далее любой код, весь вывод складывается в буфер:
А будет разница эхать код или выходить из пхп? т.е.
echo 'бла-бла-бла';
и
?>
бла-бла-бла
<?php
И ещё строчку
PHP код:

$block=str_replace("{CONTENT}",ob_get_contents(),$block); 

обязательно писать перед закрытием буферизации?

Reizel 03.07.2010 22:53

Ответ: Задаём пхп куда писать
 
с помощью PHP ты вообще ниче не изменишь на клиентской стороне! Только JS, вы это можете понять?
В общем надо в ячейки совать <span>'s с уникальными ID (лучше всего формата: колонка_ячейка), потом при необходимости добавить контент в нужную ячейку, к примеру, 3*2, делаем так:
function SetContent(x,y,Content)
{
document.getElementById(x+"_"+y).innerHTML=Content ;
}

Nord 03.07.2010 22:59

Ответ: Задаём пхп куда писать
 
Павел, как я понял, ему нужен шаблон, ты ссылки посмотри, что он привел. Ничего на клиенской стороне там делать не нужно.
Ksantos,
1. Без разницы
2. Обязательно.

Ksanatos 03.07.2010 23:18

Ответ: Задаём пхп куда писать
 
Цитата:

Павел, как я понял, ему нужен шаблон, ты ссылки посмотри, что он привел.
Блин надо было сразу сказать, чёй-то я сам ступил. Мне нужен именно шаблон, чтобы не ворошить ячейки. ДА чтоб вообще забыть про их существование! Пошли они ... куда подальше! Я же уже писал рамок будет очень много! Что-то вроде окон будет, где-то ещё с заголовками и т.д.. В общем способ Павла хороший, я сам сначала также хотел сделать, засунуть в функцию и юзать, но так как видов "окон" будет определённое количество он здесь не уместен. Пока буду работать с буфером, если получится извещу о результатах, может кому-нибудь тоже понравится такая компоновка)


Часовой пояс GMT +4, время: 05:16.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot