Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Навигация
 
 автор: Sin   (05.09.2004 в 14:35)   письмо автору
 
 

Здравствуйте. Я только начинаю делать первые шаги в языке PHP. Прочтя вашу книгу я стал разбираться в некоторых опираторах. И захотелось самому попробовать что-то написать. Стал анализировать различные готовые скрипты и разбираться как они сделаны. Наткнулся на интересный способ навигации. Вот он:
<?
$deystvo 
=("glav");
switch(
$deystvo) :
case(
"glav"):
print
"
<table border=1 width=21% id=table1>
        <tr>
                <td><form action=index.php?deystvo=glav method=post>
                <input type=submit value='Домашняя'></form></td>
        </tr>
        <tr>
                <td><form action=index.php?deystvo=kak method=post>
                        <input type=submit value='Другая'></form></td>
        </tr>
</table>
<h1>Получилось!!!</h1>"
;
break;
case (
"kak"):
print 
"
<table border=1 width=21% id=table1>
        <tr>
                <td><form action=index.php?deystvo=glav method=post>
                <input type=submit value='Домашняя'></form></td>
        </tr>
        <tr>
                <td><form action=index.php?deystvo=kak method=post>
                        <input type=submit value='Другая'></form></td>
        </tr>
</table>
<h3>Проверка</h3>"
;
break;
endswitch;
?>



Я его конечно переработал (после print поставил свои операторы и в case вставил свои переменные), а то он слишком большой.
Так вот дело в том что он не работает. При на жатие на кнопку "Другая" в адресе браузера пишется http://localhost/index.php?deystvo=kak, а страница не изменяется, то есть остается "получилось" и не меняется на "проверка".
Хотя я точь в точь скапировал все из оригенала. Там работает, у меня нет :([code]<?php[code]<?php

   
 
 автор: cheops   (05.09.2004 в 15:27)   письмо автору
 
   для: Sin   (05.09.2004 в 14:35)
 

Дело в строке
<?php
$deystvo 
=("glav"); 
?>

вы каждый раз присваиваете переменной $deystvo значение "glav", не зависимо от того, что передаётся в строке запроса. Нужно либо удалить эту строку либо присвоить $deystvo значение
<?php
$deystvo 
$_GET['deystvo']; 
?>

Если значение директивы register_globals равно Off в php.ini.

   
 
 автор: Sin   (05.09.2004 в 17:25)   письмо автору
 
   для: cheops   (05.09.2004 в 15:27)
 

Ага. Все получилось после того как убрал $perehod=("glav");. Только пришлось в конце добавить в конце default с точной копией Главной страницы.

И уменя еще возник маленький вопросик (уж простите ламера):

print "//.........
<td width=542 height=29 valign=top style=border-style: solid; border-width: 1px bgcolor=#BCCDCB><h3><p align=center>"; echo ($msg); 

print "<?h3></td></tr><tr><td width=542 height=453 valign=top style=border-stylesolidborder-width1px bgcolor=#F7F9F9><p align=justify style=text-indent: 10px; margin-left: 20px; margin-right: 15px>"; echo ($cont); print "</td></tr></tbody></table>";


Почемуто
<p align=justify style=text-indent: 10px; margin-left: 20px; margin-right: 15px>
не действует на вывод переменной $cont, хотя
<p align=center>
на $msg сработало.

   
 
 автор: glsv (Дизайнер)   (05.09.2004 в 21:33)   письмо автору
 
   для: Sin   (05.09.2004 в 17:25)
 

Не очень понятно… А что должно быть?

А еще у Вас print немного странный
Вот этот участок

<?h3></td>


А вот этот блок

style=border-style: solid; border-width: 1px bgcolor=#F7F9F9

наверное должен быть вот таким

style="border-style: solid; border-width: 1px" bgcolor=#F7F9F9


А вот этот

<p align=justify style=text-indent: 10px; margin-left: 20px; margin-right: 15px>

вот так

<p align=justify style="text-indent: 10px; margin-left: 20px; margin-right: 15px">

   
 
 автор: Artem S.   (05.09.2004 в 21:44)   письмо автору
 
   для: glsv (Дизайнер)   (05.09.2004 в 21:33)
 

Небольшое добавление.
Так не получиться, так как нельзя так ставить кавычки внутри php скрипта, замени вот этот кусок

style="border-style: solid; border-width: 1px" bgcolor=#F7F9F9 

на этот

style=\"border-style: solid; border-width: 1px\" bgcolor=#F7F9F9 

И все в этот духе.
Хотя кавычки здесь (то есть их отсутствие) не должно сказаться на современных браузерах

   
 
 автор: glsv (Дизайнер)   (05.09.2004 в 23:04)   письмо автору
 
   для: Artem S.   (05.09.2004 в 21:44)
 

Да, именно так, прошу прощения. Забыл, что это вывод в php-скрипте. Или двойные кавычки можно заменить на одинарные.

>Хотя кавычки здесь (то есть их отсутствие) не должно сказаться на современных браузерах

Тут другое - к стилям это не относится. Без кавычек эта строка

style=border-style: solid; border-width: 1px bgcolor=#F7F9F9 

будет воспринята максимум вот так:

style=border-style: solid
Остальная часть стилей идет после пробела и не будет воспринята браузером, именно как стиль. В частности border-width: 1px будет интерпретирован как свойство тэга. Но такого свойства у тэгов не существует. Поэтому эта часть будет проигнорирована.

А вот bgcolor=#F7F9F9 - это свойство тэга. Поэтому здесь все нормально.

   
 
 автор: Sin   (05.09.2004 в 23:22)   письмо автору
 
   для: Artem S.   (05.09.2004 в 21:44)
 

На счет
<?h3></td>
Извените - опечатался.
print "//......... 
<td width=542 height=29 valign=top style=border-style: solid; border-width: 1px bgcolor=#BCCDCB><h3><p align=center>"; echo ($msg); 

print "<h3></td></tr><tr><td width=542 height=453 valign=top style=border-style: solid; border-width: 1px bgcolor=#F7F9F9><p align=justify style=\"text-indent: 10px; margin-left: 20px; margin-right: 15px\">"; echo ($cont); print "</td></tr></tbody></table>";

Ну вот я исправил
style=border-style: solid; border-width: 1px bgcolor=#F7F9F9 
на это
style=\"border-style: solid; border-width: 1px\" bgcolor=#F7F9F9 
Но в ячейке таблицы все равно нету отступа справа и слева, а также отступа первой строки. Может существует другой способ создания отступов? Научите пожайлуста!

   
 
 автор: glsv (Дизайнер)   (05.09.2004 в 23:52)   письмо автору
 
   для: Sin   (05.09.2004 в 23:22)
 


style=\"border-style: solid; border-width: 1px\" 

Ух-ты, действительно, не работает :)

Замените \" на одинарные кавычки ' - у меня заработало.

Я вот так поменял Ваш код.

<?
print "//......... 
<td width=542 height=29 valign=top 
style='border-style: solid; border-width: 1px' bgcolor=#BCCDCB>
<h3><p align=center>"

echo (
$msg); 
print 
"</h3></td></tr>
      <tr>
         <td width=542 height=453 valign=top 
          style='border-style: solid; border-width: 1px' 
          bgcolor=#F7F9F9>
          <p align=justify style='text-indent: 10px; margin-left: 20px; margin-right: 15px'>"
;
echo (
$cont); 
print 
"</td></tr></tbody></table>"
?>

   
 
 автор: Sin   (06.09.2004 в 23:20)   письмо автору
 
   для: glsv (Дизайнер)   (05.09.2004 в 23:52)
 

Все получилось как надо. Только вот еще возникла маленькая проблема:
<input type=submit value='Редактировать главную страницу'>

Вместо "Редактировать главную страницу" появляются в браузере какието ероглифы хотя на других страницах все нармально. А использовал один и тот же редактор PHP Expert Editor 3.2 Как от этого можно избавится?
Или это просто у меня такой глюк?

   
 
 автор: glsv (Дизайнер)   (06.09.2004 в 23:43)   письмо автору
 
   для: Sin   (06.09.2004 в 23:20)
 

А в PHP Expert Editor нормально смотрится?

У вас выставлена кодировка страницы? Например

<html>
<head>
....
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
...
</head>


Попробуйте задать кодировку, сохранить и заново открыть этот файл. Если иеролифы появятся, то переписать value.

Но с PHP Expert Editor не работал, потому ничего конкретней посоветовать не могу.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования