Реализован AJAX метод добавления точки. Немного доработана модель.
This commit is contained in:
parent
8d1ef522dd
commit
85b7b234cc
|
|
@ -60,7 +60,14 @@ class Model
|
||||||
{
|
{
|
||||||
|
|
||||||
$request = App::$DB->prepare('INSERT INTO ' . $this->_tableName_ . ' (' . implode(',', array_keys($values)) . ') values (:' . implode(', :', array_keys($values)) . ')');
|
$request = App::$DB->prepare('INSERT INTO ' . $this->_tableName_ . ' (' . implode(',', array_keys($values)) . ') values (:' . implode(', :', array_keys($values)) . ')');
|
||||||
return $request->execute((array) $values);
|
if ( $request->execute((array) $values) )
|
||||||
|
{
|
||||||
|
return $this->getByPK(App::$DB->lastInsertId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function save()
|
function save()
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,4 @@ class IndexController extends Controller
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
static function actionAddpoint()
|
|
||||||
{
|
|
||||||
$point = new Point();
|
|
||||||
$point->add($_POST);
|
|
||||||
App::redirect('/');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,4 +60,45 @@ class JsonController extends Controller
|
||||||
'data' => $categories,
|
'data' => $categories,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Добавление точки
|
||||||
|
*/
|
||||||
|
static function actionAddPoint()
|
||||||
|
{
|
||||||
|
$errors = array();
|
||||||
|
|
||||||
|
if(!( isset($_POST['name']) && $_POST['name'] && strlen($_POST['name']) > 1 )) $errors[]='Неверное название точки';
|
||||||
|
if(!( isset($_POST['img']) && $_POST['img'] && strlen($_POST['img']) > 13 )) $errors[]='Плохая ссылка на изображение';
|
||||||
|
if(!( isset($_POST['description']) && $_POST['description'] && strlen($_POST['description']) > 25 )) $errors[]='Слишком короткое описание';
|
||||||
|
if(!( isset($_POST['categoryId']) && $_POST['categoryId'] )) $errors[]='Не задана категория точки';
|
||||||
|
if(!( isset($_POST['source']) )) $errors[]='Не передано поле источкика информации. Допускается пустое значение.';
|
||||||
|
if(!( isset($_POST['lat']) && $_POST['lat'] )) $errors[]='Ошибочное значение широты';
|
||||||
|
if(!( isset($_POST['lng']) && $_POST['lng'] )) $errors[]='Ошибочное значение долготы';
|
||||||
|
|
||||||
|
if (empty($errors))
|
||||||
|
{
|
||||||
|
$point = new Point();
|
||||||
|
$point->add($_POST);
|
||||||
|
|
||||||
|
if ( $point->id )
|
||||||
|
{
|
||||||
|
self::renderPartial('json.php', array(
|
||||||
|
'data' => $point->id
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
header("HTTP/1.0 500 Internal Server Error");
|
||||||
|
die('Error 500 - Internal Server Error');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
header("HTTP/1.0 400 Bad Request");
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
print json_encode($errors);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ function init() {
|
||||||
myMap.balloon.open(coords, {
|
myMap.balloon.open(coords, {
|
||||||
contentHeader:'Добавление точки',
|
contentHeader:'Добавление точки',
|
||||||
contentBody:
|
contentBody:
|
||||||
'<form method="POST" action="/index/addpoint/" width="400px" height="300px">' +
|
'<form method="POST" action="/json/addpoint/" width="400px" height="300px">' +
|
||||||
'<p>Название:<br/>' +
|
'<p>Название:<br/>' +
|
||||||
'<input type="text" id="name" name="name" /></p>' +
|
'<input type="text" id="name" name="name" /></p>' +
|
||||||
'<p>URL изображения:<br/>' +
|
'<p>URL изображения:<br/>' +
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue