Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.04.2009, 17:40
dmk777 вне форума Посмотреть профиль Отправить личное сообщение для dmk777 Найти все сообщения от dmk777
  № 1  
Ответить с цитированием
dmk777

Регистрация: Aug 2006
Сообщений: 10
Отправить сообщение для dmk777 с помощью ICQ
По умолчанию PHP скрипт в HTML

Привет! Есть такая проблема:

В HTML страничку вставлен PHP-скрипт как SSI. Его задача выводить список ссылок на самого себя, т.е. выбор категорий с помощью GET.
script.php?category=3

Но после вывода он должен вернуться на страницу которая его вызывала,
т.е. index.html, что не происходит. А если вызывать из Javascript, то PHP не получает параметры, т.е. GET пустой.

В общем нужно, чтобы PHP скрипт выполнялся, строил ссылки, но при нажатии на сылку не было перехода на другую страницу, а просто менялась картинка в соответствии с выбранной сылкой.

Если все делать или на PHP или JS+HTML - работает, но PHP нужен для выборки изображений из базы. У меня связка HTML+PHP не работает.

Вот код:
PHP код:
require("eg_config.php");//Настройки сервера

$selected 1;

$click $_GET['category'];//В параметре выбор по клику
if ($click == 0)
   {
    echo 
"Параметра нет!";
   }
  else
   {
    echo 
"Категория №".$click;
    
$selected $click;
   };
  
  
$call_page "index.html";
  
$self_page "eg_category_load.php";

  
$num_records GetCategoryCount();
  
ob_start();//Начинаем кэшировать страницу
  
echo "<span class=\"neg_small_cyan_u\">";//Используем свой стиль для вывода ссылок
  
for ($i 0$i $num_records$i++)
    {
     
$rec ReadCategoryRec($i);//Читаем запись
     
$data_id $i 1;//Индекс категории начинается с единицы
     
$data_str rtrim($rec["name"]);//Название категории
     
if ($i == ($selected 1)) { $sel "›"; } else { $sel ""; };
     echo 
"<a href=/".$self_page."?category=$data_id".">".$data_str." </a> ".$sel.$br;//Выводим ссылки на запрос по категориям
     //echo "<a href=\"javascript:void(0)\" onClick=\"ChangeRef('".$data_id."')\">".$data_str."</a>".$sel.$br;
    
};//for
  
echo "</span>";
  
header("Location: $call_page");
  
ob_end_flush(); 
Добавлено через 11 минут
Переменная должна хранится на стороне пользователя, только не в куках!

Старый 29.04.2009, 18:42
artem_fs вне форума Посмотреть профиль Отправить личное сообщение для artem_fs Найти все сообщения от artem_fs
  № 2  
Ответить с цитированием
artem_fs

Регистрация: Jul 2008
Сообщений: 257
так на html+php и не будет (никак) работать в таком виде, чтобы страница заново вся не подгружалась.
надо такой связкой делать - html+js+php
адрес будет script.php#category=3
с помощью jquery например хватаете эту переменную, и подгружаете php скрипт, который будет выдавать нужную картинку

Старый 29.04.2009, 20:41
dmk777 вне форума Посмотреть профиль Отправить личное сообщение для dmk777 Найти все сообщения от dmk777
  № 3  
Ответить с цитированием
dmk777

Регистрация: Aug 2006
Сообщений: 10
Отправить сообщение для dmk777 с помощью ICQ
Неужели никак нельзя передать 1 единственное значение?
Через скрытое поле или еще как? В HTML ничего для этого не предусмотрено?
Или обязательно нужен SUBMIT?

Добавлено через 3 часа 50 минут
Это test.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
Hello world - PHP include next<BR>
<!--#include virtual="test.php" -->//Никаких параметров не передается
<BR>
that was the PHP include output
<BR>Now include php with a fixed parameter ...<BR>
<!--#include virtual="test.php?a=1" -->//Передается параметр a=1
</script>
</body>
</html>

и test.php

<?php
$a=htmlspecialchars($_REQUEST['a']);
echo "value of parameter a=".$a;
?>



Когда задаешь параметр в теле HTML, то все прекрасно.
Параметры через SSI передаются нормально.
Вот теперь как средствами HTML заменить строку
<!--#include virtual="test.php?a=1" -->
на
<!--#include virtual="test.php?a=2" --> и т.д.

Через JS не выходит. Apache не понимает внутри поля <script> ничего.
Поэтому формирование строчки

sURL = "test.php?a="+index;
s = "<"+"!"+"--"+"#"+"include virtual="+sURL+" -->";
document.write(s);

что в итоге дает правильную строку, но не дает включение PHP-файла.

Добавлено через 3 часа 50 минут
Sorry

PHP код:
Это test.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
Hello world - PHP include next<BR>
<!--#include virtual="test.php" -->//Никаких параметров не передается
<BR>
that was the PHP include output
<BR>Now include php with a fixed parameter ...<BR>
<!--#include virtual="test.php?a=1" -->//Передается параметр a=1
</script>
</body>
</html>

и test.php

<?php
$a
=htmlspecialchars($_REQUEST['a']);
echo 
"value of parameter a=".$a;
?>



Когда задаешь параметр в теле HTML, то все прекрасно.
Параметры через SSI передаются нормально.
Вот теперь как средствами HTML заменить строку
<!--#include virtual="test.php?a=1" -->
на
<!--#include virtual="test.php?a=2" --> и т.д.

Через JS не выходит. Apache не понимает внутри поля <script> ничего.
Поэтому формирование строчки 

sURL = "test.php?a="+index;
s = "<"+"!"+"--"+"#"+"include virtual="+sURL+" -->";
document.write(s);

что в итоге дает правильную строку, но не дает включение PHP-файла.

Старый 30.04.2009, 23:13
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 4  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
или я че-то не понимаю, но почему в php файле нельзя юзать html?
например, так файл test.php
Код:
<html><h1> это хтмл</h1>
<?php print "это php"; ?>
в одном файле сразу

Старый 08.05.2009, 11:42
dmk777 вне форума Посмотреть профиль Отправить личное сообщение для dmk777 Найти все сообщения от dmk777
  № 5  
Ответить с цитированием
dmk777

Регистрация: Aug 2006
Сообщений: 10
Отправить сообщение для dmk777 с помощью ICQ
Усе! сделал через JS<->PHP. Работает раза в 3-4 быстрее и ссылки не видно в строке.

2duhowka
Много всего наверстано в дриме. Поэтому нужны только внешние PHP.
А так я просто с SSI разбирался. Кстати передать параметры через SSI
возможно. Только неудобно.

Старый 09.05.2009, 17:55
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 6  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
зачем SSI я так и не понял.
имхо если есть php, то проще использовать require или include.
Я использовал ssi, когда еще только был "perl", но у заказчика иной раз был хостинг без него приходилось делать все на html, а при использовании SSI - shtml и даже получалось сделать некую динамичность. =)
параметры передать можно, но страница при этом перезагружается.

Старый 09.05.2009, 18:54
dmk777 вне форума Посмотреть профиль Отправить личное сообщение для dmk777 Найти все сообщения от dmk777
  № 7  
Ответить с цитированием
dmk777

Регистрация: Aug 2006
Сообщений: 10
Отправить сообщение для dmk777 с помощью ICQ
>но страница при этом перезагружается
Вот отсюда и все проблемы =)

Хочется динамики + без перегрузки страниц.
В общем сочетание PHP и JS, на мой взгляд позволяет делать все,
что душе угодно.

А SSI мне попалось потому, что до нее я не знал как выделить
область под действие PHP-скрипта. Т.е. выводить кучу верстки
средствами PHP - нудно и долго, т.к. объем HTML-кода большой.
Вот и химичил с SSI. Зато понял, что "клиент" мертв :-)

Теперь я сделал так: JS делает запрос PHP-скрипту,
PHP-скрипт передает массив данных в JS,
а JS на основе данных обновляет нужные элементы.
Вроде так нормально?

Старый 10.05.2009, 06:21
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 8  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
Цитата:
Сообщение от dmk777 Посмотреть сообщение
Теперь я сделал так: JS делает запрос PHP-скрипту,
PHP-скрипт передает массив данных в JS,
а JS на основе данных обновляет нужные элементы.
формулировки не совсем верны, но мне показалось, что я понял, что вы хотели сказать.
js+php+mysql очень сильная связка.
Мне кажется, что последнее время стал популярен и актуален Ajax (как считают некоторые благодаря гуглу), а если упростить, то по сути это "асинхронный" JavaScript и XML. используя его можно изменить "изображение" страницы, не перезагружая её. имхо стоит обратить на него внимание.

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.