Показать сообщение отдельно
  #20 (permalink)  
Старый 15.07.2015, 15:13
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Теперь в чем разница обычного и аякс-запроса:

<?php

/*
   тут пропущены функции коннекта и записи в бд 
*/

class SomeClass extends ClassGettersWithSetters {

   protected function get_ajax(){
 /*
   любым способом проверяется что это аякс 
   например по заголовку - канонично
   по ключу в урле
   по спец-полю
   по кукам
   ниже - по заголовку и факт кешируется в проперти объекта
 */
   return $this->_d['ajax']=isset($_SERVER['HTTP_X_REQUESTED_WITH'])
	 && strcasecmp($_SERVER['HTTP_X_REQUESTED_WITH'],'xmlhttprequest')==0;
   }

}

if (isset($_POST['name'])) {
  $name = $_POST['name'];
  if (isset($_POST['description'])) $description = $_POST['description']; else $description = "";
  add_item($name, $description);
/* 
  То есть все как обычно до этой развилки: если аякс - отпостить 
   в браузер слово Saved и сдохнуть, а если не аякс то пропустить и нарисовать форму
*/
  if($this->ajax)
    exit('Saved');
}

?>
<form name="itemform" action="item.php" method="post">
Название:
<input type="text" name="name">
Описание:
<input type="text" name="description">
<input type="submit" value="Добавить">
</form>

Последний раз редактировалось kostyanet, 15.07.2015 в 15:16.
Ответить с цитированием