<?php
// Any expression you want
define('IN_DEV', $_SERVER['REMOTE_ADDR'] === '127.0.0.1');
error_reporting(-1);
ini_set('display_errors', IN_DEV);
/**
* Error handler
*
* @param int $severity Errno
* @param string $msg Errstr
* @param string $file Errfile
* @param int $line Errline
* @throws ErrorException
*/
function errhandler($severity, $msg, $file, $line)
{
if (error_reporting() & $severity) {
throw new ErrorException($msg, 0, $severity, $file, $line);
}
}
/**
* Exception handler
*
* @param Exception $e
*/
function exceptionHandler($e)
{
if (IN_DEV) {
// show error for developer
echo $e->getMessage(), '<pre>', $e->getTraceAsString(), '</pre>';
} else {
// log error
// file, database, whatever
}
}
set_error_handler('errhandler', error_reporting());
set_exception_handler('exceptionHandler');
AddHandler application/x-httpd-php .php .tpl
<input type='checkbox' name='prod[]' value='$id' >
<input type='checkbox' name='prod[]' value='$id' >
// Получаем массив элементов
$prod = $_POST['prod'];
// $prod - это массив со всеми отмеченными элементами
// Его можно обработать, например, так:
foreach ($prod as $item) {
echo $item;
}
<?php
if (!empty($_POST['prod'])) {
// Получаем массив элементов
$prod = $_POST['prod'];
// $prod - это массив со всеми отмеченными элементами
// Его можно обработать, например, так:
echo 'Recieved: '.implode(', ', $prod).'<br />';
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" action="" onsubmit="send(this); return false;">
<input type='checkbox' name='prod[]' value='value1' /><br />
<input type='checkbox' name='prod[]' value='value2' /><br />
<input type='checkbox' name='prod[]' value='value3' /><br />
<input type='checkbox' name='prod[]' value='value4' /><br />
<br />
<input type="submit" value="Отправить" />
</form>
<script src="http://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script>
<script>
function send (form) {
var count = $(form).find(':checked').length;
if (count == 2) {
var prods = $(form).serialize();
$.ajax({
type: "POST",
url: "toster.php",
data: prods,
success: function (html) { $("body").append(html); }
});
} else if (count > 2) {
alert('Много выделено');
} else {
alert('Мало выделено');
}
}
</script>
</body>
</html>
interface StorableMaterial
{
public function save();
}
class Material implements StorableMaterial
{
public function save()
{
// ...
}
}
class SuperMaterial implements StorableMaterial
{
public function save()
{
// ...
}
}
class A {
void save(Material m) {
m.save();
}
void delete(Material m) {
m.delete();
}
}
interface Material {
void save();
void delete();
}
class MaterialNumberOne implements Material {
void save() {
//делаем что нужно для первого материала
}
void delete() {
//делаем что нужно для первого материала
}
}
class MaterialNumberTwo implements Material {
void save() {
//делаем что нужно для второго материала
}
void delete() {
//делаем что нужно для второго материала
}
}
// юзаем так
public static void main(String[] args) {
Material m1 = new MaterialNumberOne();
Material m2 = new MaterialNumberTwo();
A a = new A();
a.save(m1);
a.delete(m1);
a.save(m2);
a.delete(m2);
}
class MaterialFactory
{
public static function build($type)
{
// тут генерим путь до класса на основе его типа
return new $className();
}
}
class Material
{
public function save()
{
// тут свои действия
}
}
class SuperMaterial
{
public function save()
{
// тут другие действия
}
}
public function save($one,$type){
$obj = MaterialFactory::build($type);
$obj->save();
}