Jump to content
  • 0

Отображание страниц на той же самой странице


love-planet
 Share

Question

Здравствуйте,

Мне здорово помог нижеследующий код. При клике по разделам меню в одной ячейке менялся контент находящийся в другой ячейке. У меня тоже была такая проблема как у Inkon, не знал как сделать сайт чтоб клике по разделам меню в одной ячейке менялся контент находящийся в другой ячейке Я во многих форумах задавал этот вопрос, но к сожалению, никто не мог давать конкретный ответ. Многие, на англоязычных форумах, мне писали использовать ajax технологию.

Я воспользовался нижеследующим кодом на своем сайте и у меня получилось. Но возникла одна проблема. Например, гостевая. Она у меня в папке guestbook. Пользуясь методом case"1": include("../content.php"); break; почему-то содержание (сообщения, картинки) (и css дизайн игнорируется) гостевой книги не отображается, и выводить следующее:

Сегодня 21.10.2009 Добавить сообщение Вернуться на главную

________________________________________

Добро пожаловать в гостевую книгу. Будем рады услышать Ваше мнение о нашем сайте.

Warning: file(guest.dat) [function.file]: failed to open stream: No such file or directory in W:\home\test1.ru\www\guestbook\index.php on line 309

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

Пожалуйста, посоветуйте, как можно решить эту проблему? А также у меня примерно 60 ссылок в меню, как поступить с ними? Может продолжить код case до 60 или есть какой-нибудь вариант?

С уважением, Илья

<td width="172" height="240" nowrap="nowrap" background="Pic/menu.jpg">
<a href="../index.php?icebars=1/">Главная</a><p>
<a href="../index.php?icebars=2">Патенты</a><p>
<a href="../index.php?icebars=3">Контакты</a><p>
</td>
<td width="80" height="241" nowrap="nowrap"></td>
<td rowspan="2" nowrap="nowrap" bgcolor="f1edee">
<?php
if(isset($_GET['icebars'])){
switch($_GET['icebars']){
case"1":
include("../content.php");
break;
case"2":
include("content.php");
break;
case"3":
include("./content.php");
break;
default:
print ("чего-то не получается");
};#Закрываем switch
};#Закрываем if
?>
</td>

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Советую почитать учебники, задача решается тривиально и без использования switch.

А по нажатию на "добавить" всё исчезает скорее всего потому, что не сохраняется параметр icebars в строке адреса.

На счёт CSS: он должен подключаться только в файле верхнего уровня. Судя по сложности вопроса, могу предположить, что гостевушка содержит <head> со своим css, если это так, нужно переписать и её и файл, который её инклудит.

А вообще, лично я делаю примерно так:

news.php

require('up.htm');
$news->Show();
require('down.htm');

guestbook.php

require('up.htm');
$guestbook->Show();
require('down.htm');

То есть, имеется неизменяемая часть сайта, вынесенная в up.htm и down.htm, это всякие меню и футеры, они подгружаются на каждой странице, а основное содержимое у каждого своё. Этот подход позволяет отказаться от адресов в виде index.php?a=guestbook&act=add, сократив их до guestbook.php?add

Edited by Int
Link to comment
Share on other sites

  • 0

Ошибки читать не умеем, понятно

Warning: file(guest.dat) [function.file]: failed to open stream: No such file or directory in W:\home\test1.ru\www\guestbook\index.php on line 309

Ошибка при открытии файла guest.dat, файл не найден. Внимательнее посмотрите путь к этому файлу в \guestbook\index.php, 309 строка. Приведенный вами код вообще тут не причем

Link to comment
Share on other sites

  • 0
А также у меня примерно 60 ссылок в меню, как поступить с ними? Может продолжить код case до 60 или есть какой-нибудь вариант?

1. простой вариант. создать ассоцативный массив в отдельном файле подключаемом include.

//menu.php.inc
$Menu = array (
"1" => array (
"name"=>"Главная",
"file" =>"index.php"
),
"2" => array (
"name"=>"Контакты",
"file" =>"contacts.php"
),
/*.
.
.*/
"60" => array (
"name"=>"Шестьдесят",
"file" =>"60.php"
)
);

в дальнейшем редактировать этот файл. а в основном подгружать этот массив и по номеру в списке доставать нужную информацию.

2. оптимальный вариант. организовать аналогичную таблицу в базе данных. и получать запросом только необходимую инфу.

ПС, ППС: Более детально смотреть манулы и учебники по работе с массивами и базами данных

Link to comment
Share on other sites

  • 0
Ошибки читать не умеем, понятно

Warning: file(guest.dat) [function.file]: failed to open stream: No such file or directory in W:\home\test1.ru\www\guestbook\index.php on line 309

Ошибка при открытии файла guest.dat, файл не найден. Внимательнее посмотрите путь к этому файлу в \guestbook\index.php, 309 строка. Приведенный вами код вообще тут не причем

Я проверял путь к этому файлу, но к сожалению, guest.dat находится именно в папке guestbook.

Знаете, когда я открываю гостевую на отдельном окне по ссылке http://test1.ru/guestbook/index.php, гостевая работает и никаких ошибок не выдает, а также когда нажимаете на кнопку Добавить сообщение, все работает.

А вот если, я с помощью инклудинга добавляю гостевую, проблема как прежде.

Link to comment
Share on other sites

  • 0
Я проверял путь к этому файлу, но к сожалению, guest.dat находится именно в папке guestbook.

Знаете, когда я открываю гостевую на отдельном окне по ссылке http://test1.ru/guestbook/index.php, гостевая работает и никаких ошибок не выдает, а также когда нажимаете на кнопку Добавить сообщение, все работает.

А вот если, я с помощью инклудинга добавляю гостевую, проблема как прежде.

Напишите сюда эту строку, где происходит открытие файла (путь к нему) guest.dat

Link to comment
Share on other sites

  • 0

Хм..., у меня даавно была подобная проблема когда ставил стороннюю гостевуху, там сто пудово проблема с путями.

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

Link to comment
Share on other sites

  • 0

Добрый день!

У меня просьба ко всем. Не могли бы поделиться пхп файлами, с помощью которых было бы еще понятнее. Я имею ввиду организацию меню и перехода на страницы при клике на линк.

Спасибо

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy