Jump to content
  • 0

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


AddM
 Share

Question

Здраствуйте! Делаю админскую часть для одного проекта. Собственно функции сделал все необходимые и базу и саму веб-морду, всё связал, всё работает.

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

Как добиться того что бы все результаты выводились на одной странице там же где расположены функцианальные кнопки?

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

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Страница становится другая, но меняется только область с основным контентом, шапка навигации и прочее на 2-х страницах одинаковые. Либо смотрите в сторону ajax, но не думаю, что это то что надо

Link to comment
Share on other sites

  • 0

Как добиться того что бы все результаты выводились на одной странице там же где расположены функцианальные кнопки?

для этого существует метод гет.

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

Link to comment
Share on other sites

  • 0

для этого существует метод гет.

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

я пробовал с гетом, но если так:

файл index.php:

<form action="1.php" method="get">

<?php

здесь описываем подключение к базе и запрос на вывод всех полей из БД в динамический список и прикручиванием в полю "id" checkbox для дальнешей операции

(типа действие по умолчанию);

?>

<input type="submit" name="ok" value="Удалить" />

</form>

файл 1.php:

<?php

здесь описываем через $_GET передачу сигнала на удаление;

ниже проверка на то что стоит или нет галочка на чекбоксе;

потом подключение к базе и выполнения запроса на удаление;

?>

И вот как тут через GET сделать так что бы выполнив действие 1.php отобразил всё на index.php?

Edited by AddM
Link to comment
Share on other sites

  • 0

вариант 1:


1.php:

if (isset($_GET['var']))
{
some code....
header('Location: index.php');
die;
}

вариант 2:


index.php:

if (isset($_GET['var']))
{
some code...
header('Location: index.php');
die;
}
.............
<form action="?"><input name="var"></form>

Кусок кода с обработчиком гета можно вынести куда-нибудь или в функцию или просто в отдельный файл, и инклудить оттуда.

Link to comment
Share on other sites

  • 0

Что такое requery?

Я с понедельника в отпуске, так что пиши :o

С location не получается..

вот файлы для теста с банальным "echo":

t1.php:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Учусь-тестовый сайт</title>
<link href="" rel="stylesheet" type="text/css">
</head>
<body>
<form action="t2.php" method="get">
Выберете элементы для удаления и нажмите кнопку «Удалить»: <br>
<br>
<br>
<input name="var" type="submit" value="Удалить">
</form>
</body>
</html>

t2.php:


<?php
if (isset($_GET['var']))
{
echo "Hi!";
header('Location: t1.php');
die;
}

?>

Ругается и не работает:

Hi!

Warning: Cannot modify header information - headers already sent by (output started at T:\home\Testau\t2.php:40) in T:\home\Testau\t2.php on line 42

Как я понял или может не так понял, location не нравится что перед ней что-то выполняется, да и вообще, если после неё тоже ругается.

вот делал таким образом, может атк яснее будет чего я хочу добиться:

файл t4.php:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Тестовый вариант</title>
<link href="" rel="stylesheet" type="text/css">
</head>
<body>
<form action='t4.php' method='GET'>
<input type='submit' name='ok' value='Готово' />
<input type='submit' name='ok1' value='Готово1' />
</form>
</body>
</html>
<?php
$def_a = "1";

if (!$_GET['ok'])
{
$a=$def_a;

}
else{
$a = $_GET['ok'];
}
echo $a;

if (!$_GET['ok1'])
{
$a=$def_a;
}
else
{
$a=$_GET['ok1'];
}
echo $a;
?>

Но в этом файле всегда будет выполняться последнее условие не смотря на то что вроде работает как надо и тогда получается надо какое-то прерывание делать.

Как с этим боросться и осуществить подскажите?

Edited by AddM
Link to comment
Share on other sites

  • 0

я пробовал с гетом, но если так:

файл index.php:

<form action="1.php" method="get">

<?php

здесь описываем подключение к базе и запрос на вывод всех полей из БД в динамический список и прикручиванием в полю "id" checkbox для дальнешей операции

(типа действие по умолчанию);

?>

<input type="submit" name="ok" value="Удалить" />

</form>

файл 1.php:

<?php

здесь описываем через $_GET передачу сигнала на удаление;

ниже проверка на то что стоит или нет галочка на чекбоксе;

потом подключение к базе и выполнения запроса на удаление;

?>

И вот как тут через GET сделать так что бы выполнив действие 1.php отобразил всё на index.php?

1) в index.php подключаем файл require_once "1.php"; (без костяка страницы, просто код).

2) в файле 1.php пишем в теге form:

<FORM ACTION=\"http://".$_SERVER['HTTP_HOST']."/".$_GET['id']."/\" METHOD=\"GET\">

3) в .htaccess пишем:

RewriteEngine on

RewriteBase /

RewriteRule ^([0-9]+)/?$ /index.php?id=$1

4) в файле index.php начинаешь плодить ифы:

if (isset($_GET['id'])) {

пошел запрос на уделение из бд

}

если ничего не забыл упомянуть, то так должно сработать.

<?php

$def_a = "1";

if (!$_GET['ok'])

{

$a=$def_a;

}

else{

$a = $_GET['ok'];

}

echo $a;

if (!$_GET['ok1'])

{

$a=$def_a;

}

else

{

$a=$_GET['ok1'];

}

echo $a;

?>

а это можно сократить вот так:


<?php
$def_a = "1";

if (!$_GET['ok'] or !$_GET['ok1'])
{
$a=$def_a;

}
else{
$a = $_GET['ok'];
}
echo $a;
?>

Link to comment
Share on other sites

  • 0

его не надо подключать нигде, достаточно создать его в блокноте и сохранить как .htaccess в корне сайта.

сейчас попробую))

А название файла точно с точки? не даёт мне файл такой создать(

Создал)

" .$_GET['id']." - это переменная, которая берёт из БД идишник? Ещё больше запутывает эти схемы))

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

Link to comment
Share on other sites

  • 0

" .$_GET['id']." - это переменная, которая берёт из БД идишник? Ещё больше запутывает эти схемы))

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

1) да, этот айди берется из бд.

2) если много кнопок, то да, форм будет тоже много, но тут вам тогда надо учить ооп, с его помощью можете создать одну форму, а потом методами и функциями изменять ее параметры.

Link to comment
Share on other sites

  • 0

Ругается и не работает:

Hi!

Warning: Cannot modify header information - headers already sent by (output started at T:\home\Testau\t2.php:40) in T:\home\Testau\t2.php on line 42

Как я понял или может не так понял, location не нравится что перед ней что-то выполняется, да и вообще, если после неё тоже ругается.

После неё может выводиться, а вот то header() не должно быть ниакого вывода. Или включи ob_start().

Так, как ты написал, работать и не должно, он что-то выводит, а потом сразу делает редирект, в итоге ничего не видно. Я в таких случаях сохраняю текст в сессию, а потом уже после редиректа вывожу его и очищаю сессию.

Link to comment
Share on other sites

  • 0

После неё может выводиться, а вот то header() не должно быть ниакого вывода. Или включи ob_start().

Так, как ты написал, работать и не должно, он что-то выводит, а потом сразу делает редирект, в итоге ничего не видно. Я в таких случаях сохраняю текст в сессию, а потом уже после редиректа вывожу его и очищаю сессию.

:o я неделю с этим вожусь, не понимаю я ещё всего что вы говорите))))

всё, в голове каша((

Решил пока делать, что бы проект не висел, всё отдельными страницами с неизменной шапкой в которой будут перечсиленный все функции, т.е. copy/past. Не дорос я ещё до серьёзных операций, мало знаю в этой области.

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