popup modal window on input submit

@Fakeheal вероятно иска да те насочи към разделяне на самия controller на 2 части т.е. да имаш 2 отделни.

Относно проверката ти за тоя submit. Ние не знаем какво всъщност прави това
$submit = $this->_normalize->post('submit');, но щом казваш, че без проверката работи пробвай така и не би трябвало да получаваш нежелани записи в базата данни:
PHP:
$size = $this->_normalize->post('size');
$counter = $this->_normalize->post('counter');

if (isset($_POST))
{
	try
	{
		$this->_isLoggedModel->isLogged();
	}
	catch (\Throwable $exc)
	{
		if ($exc->getMessage() != 'logged')
		{
			exit('Трябва да си логнат !?');
		}
		$this->_offerModel->cart($size, $counter);
	}
}
$this->layout();
 
Това $submit = $this->_normalize->post('submit'); е същото като $_POST['submit'].

Така if (isset($_POST)) пак получавам нежелан запис защото тази проверка минава и директно се изпълнява записа в базата
$this->_offerModel->cart($size, $counter); без да съм натиснал бутона.
 
Човек, имаш някакъв къстъм фреймуърк, ние трябва да гадаем какво се случва, след като разгадаем, ти пак не искаш да приемеш отговора, е как да стане? Сега и аз ще ти кажа да си разделиш гет-о и пост-а, дано този път разбереш

Седни, прочети малко как стават нещата, а не пиши собствен фреймуърк, след като не знаеш разликата между гет и пост. Хайде, за да стане още по-голяма манджа ти давам жокер if($_SERVER['REQUEST_METHOD'] == 'POST')
 
Btw тук за N-ти път се пуска един try catch, който е логически ребус за гении. :D

ПС: доколкото разбирам хвърля exception, дори когато потребителя е логнат.
 
Не че не искам. Наистина не мога да ви разбера. За какъв гет ми говорите? Кое да разделя?

Код:
class model {
function(){
//заявка към базата
}
}

class controller(){
function(){
if(isset($_POST['submit']){
//викам функцията от модела
}
}
}

//във вю-то е формата и джаваскрипта.

edit:
Виждам че сте пуснали коментари докато пиша.

Тази проверка винаги си минава. Пробвал съм я и не стана. if($_SERVER['REQUEST_METHOD'] == 'POST')

try catch-a хваща ексепшън от друг модел който проверява дали потребителя е логнат. Този модел хвърля ексепшън само когато потребителят не е логнат, но той няма значение в случая.
 
В ларавел имаш един файл - routes.php (или web.php, в по-новите версии).

В него си дефинираш routes или иначе казано кой URL от кой контролер/метод трябва да се изпълнява. Гара разпределителна.

Там си пишеш:

Route::get('/moq-qk-url', 'MoqQkKontroler@moqQkGetMetod');
Route::post('/moq-qk-url', 'MoqQkKontroler@moqQkGetMetod');

Синята част указва, че ако URL-а бъде достъпен през GET ще се изпълни метода moqQKGetMetod от контролера MoqQkKontroler. Червена част е достъпен URL, който само през POST може да бъде достъпен.

Контролера да кажем, че представлява нещо от сорта на:
class MoqQkKontroler extends Controller {
public function moqQkGetMetod() {
//показваш някакво view, например
}

public function moqQkPostMetod() {
// обработваш някакъв post request
// например събмитната форма
}
}

Разгледай някои rest фреймуърци.
 
Това е много хубаво. Аз с Ларавел не се опитвам да се сравнявам. При мен е много по-просто. Но всъщност имам това разделение. Вю-то го дисплейвам в друга метод, а в този обработвам post-a. Имам си функции подобно на Ларавел за get и post. В случая си идва post.
 
Като каза, че получаваш нежелани записи, това ме доведе до мисълта, че след като потребителя посети даденият url се изпълнява и самата заявка със стойностите, които са ти зададени по подразбиране в html формуляра. Тоест или трябва да направиш проверка дали е зададен $_POST или просто действието да е на друг url адрес. Например - html формуляра ти да е на адрес my-url/home/, а form action-а да е към my-url/home/post
А, и друго ми идва на акъла - колко html формуляра имаш на страницата ? Тъй като в JS-а закачаш събитие за всички формуляри на страницата [js]$('form').on('submit', function(event){}[/js], пробвай да зададеш на самия формуляр уникалност. Например
HTML:
<form id='test-form'></form>
и съответно [js]$('#test-form').on('submit', function(event){}[/js]
 
Само една форма имам.

Това може би ще премахне проблема.
Например - html формуляра ти да е на адрес my-url/home/, а form action-а да е към my-url/home/post
Ще го пробвам.
 
Винаги отделяй AJAX route-овете, не е ОК в собствения си сайт да пращаш рекуест към адрес, който връща HTML, освен в случаите когато точно този HTML ти трябва като резултат (пример: Thank-you съобщения след събмит на форма). И пак е по-добре респонса да ти е в JSON, дори и само с 1 ключ.
В конкретния случай явно не можеш да се сетиш какъв е проблема на твоя подход, но ако сега решиш че тоя AJAX трябва да върне нещо (например брой продукти в кошницата) на база на което да извършиш действие на страницата с формата, ще се сетиш.
Приемливо решение е да обособиш 1 контролер само за AJAX и вътре да имаш по 1 метод за всеки route.
 
Ох не знам нищо не ми се получава. Мисля да се откажа от този модал. Имам едно питане това демо работи ли при вас? http://labs.jonsuh.com/jquery-ajax-php-json/
При мен не работи. Започвам да се питам дали не е нещо по настройките на windows-a да съм включил без да знам :shock: .
 
Не работи, но си има причина за това:
xQDyC5Z2RWi3JFHzO2Y33g.png


Както ти казаха, отвори си Developer Tools-а на браузъра (Ctrl+Shift+I за Chrome) преди да събмитнеш формуляра и виж какво се случва при теб. Все нещо трябва да излезе.
 
Аз вече реших че цялата работа е в моя телевизор. Как пък от всички скриптове съм попаднал точно на неработещия :D .
 
teroristd каза:
Аз вече реших че цялата работа е в моя телевизор. Как пък от всички скриптове съм попаднал точно на неработещия :D .
404 не означава "неработещ"/.....
 

Горе