romantik2011
User-
Posts
35 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by romantik2011
-
Что-то не работает.
-
<html><head><title>ololo</title> <script type="text/javascript" src="http://megatyumen.ru/public/js/jquery-1.6.3.min.js"></script> <script type="text/javascript"> function contest_vote(contest_id) { var contest_id = contest_id; alert(contest_id); $.get( 'http://megatyumen.ru/contest/vote_ajax/'+contest_id, function(data) { alert(contest_id); if(data.error) { alert(data.error_msg); } else { alert(data.rating); } }, 'json' ); } </script></head><body> <input type="button" onclick="contest_vote(9)" value="+1" /> </body> </html> Нужно отправить запрос, и получить ответ, сниферил все отсылается, сервер отвечает, а функция не вызывается Функция, которая исполняется всякий раз после удачного завершения загрузки данных. вот почему-то она не вызывается
-
Вот так лучше работает. <? if(!empty($_POST)){ if(empty($_POST['chislo1'])) echo 'Пожалуйста, введите Число №1 <br />'; if(empty($_POST['chislo2'])) echo 'Пожалуйста, введите Число №2 <br />'; if(empty($_POST['znak'])) echo 'Введите знак во второе поле <br />'; if(isset($_POST['chislo1']) && isset($_POST['chislo2']) && is_numeric($_POST['chislo1']) && is_numeric($_POST['chislo2']) && !empty($_POST['znak']) ) { $ch1 = $_POST['chislo1']*1; $ch2 = $_POST['chislo2']*1; $znak = $_POST['znak']; switch($znak){ case '+': $rez = $ch1 + $ch2; break; case '-': $rez = $ch1 - $ch2; break; case '*': $rez = $ch1 * $ch2; break; case '/': if($ch2!=0){ $rez = $ch1 / $ch2; }else { echo 'Деление на ноль'; } break; default: echo "Неизвестный оператор $znak"; } if(isset($rez)) echo $rez; echo '<hr width="100%" color="blue" />'; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <head><title>Моя страница</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" name="chislo1"/><br /> <input type="text" name="znak"/><br /> <input type="text" name="chislo2"/><br /> <input type="submit" value="Вычислить" > </form> </body> </html>
-
Хочу проверить каждое поле на пустоту, вот так пробую что-то не срабатывает. <?php if(empty($_POST['chislo1'])) echo 'Пожалуйста, введите Число №1 <br />'; if(empty($_POST['chislo2'])) echo 'Пожалуйста, введите Число №2 <br />'; if(empty($_POST['znak'])) echo 'Введите знак во второе поле <br />'; if(isset($_POST['chislo1']) && isset($_POST['chislo2']) && is_numeric($_POST['chislo1']) && is_numeric($_POST['chislo2']) && !empty($_POST['znak']) ) { $ch1 = $_POST['chislo1']*1; $ch2 = $_POST['chislo2']*1; $znak = $_POST['znak']; switch($znak){ case '+': $rez = $ch1 + $ch2; break; case '-': $rez = $ch1 - $ch2; break; case '*': $rez = $ch1 * $ch2; break; case '/': if($ch2!=0){ $rez = $ch1 / $ch2; }else { echo 'Деление на ноль'; } break; default: echo "Неизвестный оператор $znak"; } if(isset($rez)) echo $rez; echo '<hr width="100%" color="blue" />'; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <head><title>Моя страница</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" name="chislo1"/><br /> <input type="text" name="znak"/><br /> <input type="text" name="chislo2"/><br /> <input type="submit" value="Вычислить" > </form> </body> </html> Получается даже не дает ввести, сразу выдает что пустое. Как сделать проверку на пустоту поля если ничего не введено и нажата кнопка вычислить? Я вот сделал и не дает даже ввести что-то, сразу выдает что не пусто.
-
А, все понял. $color = ($i == 1 && $j == 1)?'#FFCCCC'$i==1?'#FFFFCC'$j==1?'#CCFFFF':'white'));
-
Вот изменил так: $color = ($i == 1 && $j == 1)?'#FFCCCC'$i>1 && $i<=10?'#FFFFCC'$j>1 && $j<=10?'#CCFFFF':'white')); Результат на фото, не получается закрасить вертикальный столбик числа от 2-10.
-
Чего-то не закрашивается таблица. Решил вспомнить и сам ещё раз написать её. красится только 1 ячейка, но не первая вертикальная и горизонтальная строка. <?php function getTable($rows,$cols){ echo '<table>'; for($i = 1; $i<=$rows; $i++){ echo '<tr>'; for($j = 1; $j <= $cols; $j++){ $rez = $i * $j; $color = ($i == 1 && $j == 1)?'#FFCCCC'$i>1 and $i<10?'#FFFFCC'$j>1 and $j<10?'#CCFFFF':'white')); echo '<td style="border:1px solid black; background-color:'.$color.';">'.$rez.'</td>'; } echo '</tr>'; } echo '</table>'; } getTable(10,10); ?>
-
Написал сам код, проблема в меню, получается переход на ссылку http://test.ru/index.php/index.php/index.php?id=page1 вместо указанной мною в коде http://test.ru/index.php/?id=page1 Подскажите, где не так? Архив вложил, вот его главный файл и файл меню. index.php <?php include 'menu.php';?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Основы блочной верстки (Div верстки)</title> <link rel="stylesheet" type="text/css" href="/style.css" /> </head> <body> <div id="wrapper"> <div id="header"><span style="font-size:34px;">Сайт</span></div> <div id="left"> <h2 style="border-bottom:1px solid black;">Menu</h2> <? getMenu($menu);?> </div> <div id="right"><h2 style="border-bottom:1px solid black;">Menu</h2> <? getMenu($menu);?> </div> <div id="kontent"> <?php $id = (isset($_GET['$id']))?$_GET['$id']:include 'home.php'; switch($id){ case 'page1': include 'page1.php'; break; case 'page2': include 'page2.php'; break; case 'page3': include 'page3.php'; break; } ?> </div> <div id="footer">Copyright © Филип Киркоров <? echo date('Y'); ?></div> </div> </body> </html> menu.php <?php $menu = array( 'Page1' => 'index.php?id=page1', 'Page2' => 'index.php?id=page2', 'Page3' => 'index.php?id=page3' ); function getMenu($masiv){ echo '<ul>'; foreach($masiv as $href=>$value){ echo "<li><a href=\"$value\">$href</a></li>"; } echo '</ul>'; } ?> Архив: http://www.onlinedisk.ru/file/727752/
-
Как сделать чтоб вот так отображало на всех браузерах, что-то не выходит. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Основы блочной верстки (Div верстки)</title> <!--<link href="style.css" rel="stylesheet" type="text/css"> --> <style type="text/css"> *{margin:0px; padding:0px; border:0px; font-family:Arial, Helvetica, sans-serif;} html>body #header {margin:0px auto; width:800px; background-color:#FFCC99;} html>body #left{margin-top:40px; background-color:#FFFFCC; width:35%; float:left; text-align:center; border-left:1px solid black; border-right:1px solid black;} html>body #kontent{background-color:white; text-align:center; border:1px solid black; border-collapse:collapse;} html>body #footer{text-align: center; background-color:#CC9966;} </style> </head> <body> <div id="header"><span style="font-size:34px;">М</span> <div id="left">Menu</div> <div id="kontent">Главная страница</div> <div id="footer">Copyright © Филип Киркоров <? echo date('Y'); ?></div> </div> </body> </html> Только в Опере отображает так, в гуглхром и мозиле наезжает. http://s1.ipicture.ru/uploads/20110905/qe2L1EhW.jpg
-
Вот так вышло. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Основы блочной верстки (Div верстки)</title> <!--<link href="style.css" rel="stylesheet" type="text/css"> --> <style type="text/css"> *{margin:0px; padding:0px; border:0px; font-family:Arial, Helvetica, sans-serif;} #header {margin:0px auto; width:800px; background-color:#FFCC99; } #left{margin-top:20px; background-color:#FFFFCC; width:35%; float:left; border-left:1px solid black; border-right:1px solid black; text-align:center;} #kontent{background-color:white; text-align:center; border:1px solid black; border-collapse:collapse;} #footer{text-align: center; background-color:#CC9966;} </style> </head> <body> <div id="header">Моя страница <div id="left">Menu</div> <div id="kontent">Главная страница</div> <div id="footer">Copyright © Филип Киркоров <? echo date('Y'); ?></div> </div> </body> </html> Как записать, вот эти 2 записи одной записью в ксс? border-left:1px solid black; border-right:1px solid black;
-
Как сделать чтоб розовая полоса не переходила на другую строку, а чтоб было слева желтое на 35%, а справа все заполнялось розовой полосой? <!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=utf-8"> <title>Основы блочной верстки (Div верстки)</title> <!--<link href="style.css" rel="stylesheet" type="text/css"> --> <style type="text/css"> body,html{ margin:0px; padding:0px; } #header {width:60%; background-color:#CCFFCC; text-align:center; margin:0px auto;} #left{width:35%; background-color:#FFFFCC; } #content{background-color:#FFCCCC; } #footer{ background-color:#669900;} </style> </head> <body> <div id="header"> <div id="left"> </div> <div id="content"> </div> <div id="footer"> </div> </div> </body> </html>
-
Решил усовершенствовать таблицу умножения, написав функцию., вроде все окей, но никак не красит таблицу. <?php function table($cols,$rows,$color1,$color2,$color3){ echo '<div align="center"><h1 align="center">Таблица умножения</h1> <table border=1>'; $color = ($cols == 1 && $rows == 1)?$color1:($cols == 1?$color2:($rows == 1?$color3:'white')); for($i=1; $i<$cols; $i++){ echo '<tr align="center">'; for($j=1; $j<$rows; $j++){ $rez = $i * $j; echo '<td style="background-color:".$color."; text-align:center;">'.$rez.'</td>'; } echo '</tr>'; } echo '</table></div>'; } table(10,10,"blue","yellow","green"); ?>
-
В коде как реализовать, не совсем ясно.
-
Подскажите, как закрасить вот так как на этой картинке? Не могу понять как. <?php $cols = 10; $rows = 10; $cols1 = 1; echo '<h1><center>ТАБЛИЦА УМНОЖЕНИЯ</center></h1>'; echo '<table style="border:1px solid black; padding:10px; margin-left:300px;">'; while($cols1<$cols){ $rows1 = 1; echo '<tr>'; while($rows1<$rows){ $rez = $cols1*$rows1; echo '<td style="border:1px solid black; padding:20px;">'.$rez. ' '.' </td>'; $rows1++; } echo '<br />'; echo '</tr>'; $cols1++; } echo '</table>'; ?>
-
Можно создать одномерный массив, всё нормально, вот так: $cars = array( "model" =>'X5', "speed" =>120, "doors" =>5, "year" =>'2006' ); echo $cars['doors']; //Выводим элемент массива Вот смутил такой двумерный массив. $cars['bmw'] = array( "model" =>'X5', "speed" =>120, "doors" =>5, "year" =>'2006' ); echo $cars['bmw']['year']; Какой смысл если написать его вот так? Как это на картинке примерно будет выглядеть этот двумерный я имею ввиду $cars?. Получается весь массив состоит из одного элемента, который тоже массив и всё?
-
А почему только вот так сработало? Почему без внутреннего цикла не запахало и без всяких проверок и приведений типов? Кто-нибудь подскажет как реализовать не так громоздко цикл форич? <?php class D{ function m($p1,$p2){ for($i=0; $i<count($p1); $i++) echo $p1[$i].' '; echo ' '.$p2; } function __call($n,$v) { foreach($v as $f){ if ((string)$f == "Array") foreach($f as $v) { echo $v; } else echo $f.' '; } } } $x = new D; $p = array("Динозавр","Аладин",954); $g = array("Ура!"); $x->m($p,"2-ой параметр<br />"); $x->s($g,"Санчо","3-ий параметр"); ?>
-
Попробовал написать такой код, не выводит все три параметра почему-то. Я имею ввиду, второго перегруженного метода с именем m(). <?php class D{ function m($p1,$p2){ for($i=0; $i<count($p1); $i++) echo $p1[$i].' '; echo ' '.$p2; } function __call($n,$v) { foreach($v as $z=>$f){ echo $v. ' '.$f; } } } $x = new D; $p = array("Динозавр","Аладин",954); $g = array("Ура!"); $x->m($p,"2-ой параметр<br />"); $x->m($g,"Санчо","3-ий параметр<br />"); ?>
-
class A{ public $user; function __set($n,$v){ $this->user[$n] = $v; } function __get($n){ return $this->user[$n]; } } $o = new A(); $o->name = "John"; echo $o->name; Когда интепретатор PHP увидел в коде что мы обращаемся к неизвестному свойству, он обратился в класс, с надеждой найти функцию __set() Эта функция имеет 2 параметра: 01)Название свойства; 02)Значение свойства. В этом месте кода, как переменная $user, которая была объявлена как приватное свойство в классе, как она могла превратится в массив если она была объявлена как обычное закрытое свойство? function __set($n,$v){ $this->user[$n] = $v; } В этом месте кода, если функция __get() вызывается только в том случаи когда была вызвана функция __set() и в функцию __get() передаётся значение свойства, то значение, которое попало в __set(). Как снова туда может лететь массив ,если функция ГЭТ принимает только свойство класса? function __get($n){ return $this->user[$n]; }
-
Решил сделать симулировать перегрузку в PHP, написал вот такой код. class A{ function t($m){ echo " ".$m; } function __call($x1,$x2){ function t($s1,$s2){ $s1 = $x1; $s2 = $x2; echo $s1.' '.$s2; } function t($s1,$s2,$s3){ $s1 = $x1; $s2 = $x2; echo $s1.' '.$s2.' '.$s3; } } } $obj = new A; $obj->t("Каприз"); $obj->t(5,7); $obj->t("Вася",500,"Мачо"); Результат: Почему не выводится так?
-
Использование магической функции __autoload()
romantik2011 replied to romantik2011's question in PHP
Всё понял ,спасибо. Скажите, а если например у меня 500 классов, все называются так: название.class.php не будет ли это вредно столько подключить? Может на что-то влияет или лишняя память расходуется? -
Прочитал здесь: http://phpclub.ru/faq/PHP5/Autoload что в PHP5 перед тем как создать объект несуществующего класса, идёт попытка вызова __autoload(), который должен попытаться подключить такой класс, которого на самом деле нету. Вот в одной директории, у меня лежит 3 файла: index.php <?php function __autoload($name){ include $name.".class.php"; echo "Ищем класс $name"; } $ob1 = new A(); $ob1->son(); $ob2 = new B(); $ob2->fanta(); ?> A.class.php <?php class A{ public function son(){ echo "<br />Вызвана функция <u>Сон</u>, класса <u>А</u>"; } } ?> B.class.php <?php class A{ public function fanta(){ echo "<br />Вызвана функция <u>Fanta</u>, класса <u>B</u>"; } } ?> Класс А находит, а класс В нет, как быть?
-
Вот решил написать функцию в классе, а в функции, внутри класса, хочу проверить, принадлежит ли той или иной объект какому-то классу. <?php class A{ public function f(){ echo 'Лето-2011!'; } } class B extends A{ function chekObject($obj){ if($obj instanceof User){ echo "Это наш!<br>"; } else{ echo "Это чужой!<br>";} echo $obj; } } $obj = new B(); $obj->chekObject("Петя"); ?> Код вроде работает, выводит такое: Но здесь получается грубо говоря проверка переменной, а не проверка объекта на принадлежность какому-то классу. Как сделать проверку на объект, который исходит от параметра функции и сделать проверку внутри функции?
-
В чем отличия указателя self от this? Что-то не совсем ясно.
-
Изучаю полиморфизм - способность класса-родителя использовать функции, классов-потомков, даже если неизвестно реализованы функции-потомков или нет. Вот написал элементарный код, без реализации, выдаёт ошибку: abstract class Db{ abstract function db_conn(); abstract function db_open(); abstract function db_query(); abstract function db_close(); } class B extends Db{ function db_conn() {}; function db_open() {}; function db_query() {}; function db_close() {}; } $o1 = new B; Дальше, пробую по примеру в книге вот этот код, который в классе-родителе вызывают функцию из производного класса, но интерпретатор тоже ругается. <?php class A { // Выводит, функция какого класса была вызвана function Test() { echo "Test from A\n"; } // Тестовая функция — просто переадресует на Test() function Call() { Test(); } } class B extends A { // Функция Test() для класса B function Test() { echo "Test from B\n"; } } $a=new A(); $b=new B(); $a->Call(); // выводит "Test from A" $b->Test(); // выводит "Test from B" $b->Call(); // Внимание! Выводит "Test from B"! ?>
-
Когда тогда не используют зроу, а используют чисто try...catch без ЗРОУ?