Дано: проводила редизайн сайта, в основе которого лежит mvc-модель с каким-то самописным php-фрейморком. В бэкенде не сильна, потому встряла намертво. Помогите.
Есть простейшая форма
<div id="shadow"></div>
<div id="subscriber_popup_after_submit">
<div id="popup_close">X</div>
<h2>Поздравляем! Вы были успешно подписаны</h2>
</div>
<form id="form_add_sellers" method="post">
<input placeholder="E-mail" type="text" name="email" id="subscription_email">
<button id="subscriber_reg_submit" type="submit">ПОЛУЧАТЬ</button>
</form>
Есть скрипт, который забирает с формы email и должен отправить его на запись в базу данных...
$(document).ready(function () {
// Добавление нового подписчика
$('#form_add_sellers').on('submit', function (e) {
e.preventDefault();
var $email = $('#subscription_email').val();
$.post('/?func=add', {email: $email}, function (data) {
console.log(data);
if (data == 1) {
$('#shadow').show();
$('#subscriber_popup_after_submit').show();
}else if (data == 2) {
alert('Некорректно заполнено поле email');
}else if (data == 0){
alert('Пользователь с таким email уже существует');
}
}, 'text').fail(function () {
alert('Ошибка! Данные не сохранены, перезагрузите страницу и попробуйте снова!');
});
});
$('body').on('click', '#popup_close, #shadow', function() {
$('#shadow').hide();
$('#subscriber_popup_after_submit').hide();
});
});
Я обновляла на сайте html-шаблоны и таблицы стилей, потому скрипт был написан уже до меня. Но после обновления он перестал почему-то работать - всегда генерируется только алерт с ошибкой. Ни в файле index.php, ни в файлах app-model.php | app-controller.php, на основе которых строится костяк сайта, я ничего не нашла, чтобы помогло понять, на что ссылается этот самый
func=add
В папке с моделями нашелся файл subscriber.php, который, похоже, делает то, что нужно...
<?php
require_once 'vendor/phpfastacache/phpfastcache_v2.1_release/phpfastcache/phpfastcache.php';
phpFastCache::setup("storage","auto");
class Subscriber extends AppModel {
public $name = 'subscribers';
public function insertIntoSubscribers()
{
if($this->api->post->data){
$data = $this->api->post->data;
$data['name'] = '';
try
{
if (! preg_match( '/^[-0-9a-z_\.]+@[-0-9a-z^\.]+\.[a-z]{2,4}$/i', $data['email'])){
echo 2;die;
}
$this->insert($this->name, $data);
echo 1; die;
}
// Исключение выбрасывается в случае неуникальности e-mail, это контролируется БД
catch (\Exception $e){
echo 0; die;
}
}
}
public function getSubscribersList()
{
return $this->getAll("SELECT * FROM " . $this->name);
}
}
Внимание, вопрос: как и куда мне самой дописать те пару строк кода, которые свяжут мою форму, скрипт и вот этот subscriber? Родительский класс AppModel описан в файле app-model.php, и видимо, там как-то надо инициировать обращение к subscriber при обработке события POST? Но вот как именно это правильно прописать, я не понимаю. Спасите!