From 85b7b234cc7bc7d570924d1e2ee0ad07e9c377b7 Mon Sep 17 00:00:00 2001 From: Krivchikov Dmitry Date: Tue, 8 Apr 2014 11:02:04 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=20AJAX=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=82=D0=BE=D1=87=D0=BA=D0=B8.=20=D0=9D=D0=B5=D0=BC=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=B0=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ground/classes/Model.php | 9 +++++- ground/controllers/IndexController.php | 6 ---- ground/controllers/JsonController.php | 41 ++++++++++++++++++++++++++ public/js/main.js | 2 +- 4 files changed, 50 insertions(+), 8 deletions(-) diff --git a/ground/classes/Model.php b/ground/classes/Model.php index 0bb0ddb..1a52090 100644 --- a/ground/classes/Model.php +++ b/ground/classes/Model.php @@ -60,7 +60,14 @@ class Model { $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() diff --git a/ground/controllers/IndexController.php b/ground/controllers/IndexController.php index de8591f..e0abb1c 100644 --- a/ground/controllers/IndexController.php +++ b/ground/controllers/IndexController.php @@ -20,10 +20,4 @@ class IndexController extends Controller )); } - static function actionAddpoint() - { - $point = new Point(); - $point->add($_POST); - App::redirect('/'); - } } diff --git a/ground/controllers/JsonController.php b/ground/controllers/JsonController.php index 93c4794..a0d232e 100644 --- a/ground/controllers/JsonController.php +++ b/ground/controllers/JsonController.php @@ -60,4 +60,45 @@ class JsonController extends Controller '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); + } + } } diff --git a/public/js/main.js b/public/js/main.js index 293f8b3..9f2633f 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -27,7 +27,7 @@ function init() { myMap.balloon.open(coords, { contentHeader:'Добавление точки', contentBody: - '
' + + '' + '

Название:
' + '

' + '

URL изображения:
' +