- popup modal window on input submit
123
WT форуми -> HTML / Javascript / CSS -> popup modal window on input submit
Създайте нова тема Напишете отговор 
Автор Съобщение
flafy
Нов
Нов

Регистриран на: 22/09/2013 6:36 pm

Support: 7
Bonus: 14
Мнения: 58
Мнение 29/07/2017 12:51 pm      Отговорете с цитат


Пробвай без тази проверка
PHP code:
if (isset($submit)) {}
. Също така този php header няма да ти върши работа в комбинация с ajax. Пробвай така:
PHP code:
$size = $this->_normalize->post('size'); 
$counter = $this->_normalize->post('counter');

try
{
$this->_isLoggedModel->isLogged();
}
catch (\Throwable $exc)
{
if ($exc->getMessage() != 'logged')
{
exit('Трябва да си логнат !?');
}
$this->_offerModel->cart($size, $counter);
}

$this->layout();


Javascript code:
$(document).ready(function(){

$('form').on('submit', function(event){

event.preventDefault();

$.post("http://localhost/market/public/offer/", $(this).serialize()).done(function(msg){
if(msg.length>0) {
alert(msg);
}
else {
el = document.getElementById("overlay");
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}
});

});
});


А още по-добър вариант е да използваш json.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1561
Мнение 31/07/2017 7:00 am      Отговорете с цитат


В конзолата няма никакви грешки, в network си излиза всичко, преди isset($submit) имам echo, без и със serialize няма разлика.

Това което наблюдавам е че event.preventDefault(); не позволява формата да се субмитне и нормално не прави запис. Ако пък се субмитне страницата се рефрешва и модала изчезва.

Без if (isset($submit)) {} не може защото прави запис при самото влизане на страницата без да е избрано нищо а така не ми върши работа.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 340
Bonus: 678
Мнения: 2556
Мнение 31/07/2017 9:32 am      Отговорете с цитат


Цитат:
Това което наблюдавам е че event.preventDefault(); не позволява формата да се субмитне и нормално не прави запис. Ако пък се субмитне страницата се рефрешва и модала изчезва.


Но после имаш $.post Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1561
Мнение 31/07/2017 11:07 am      Отговорете с цитат


Реално if (isset($submit)) {} пречи на правилното изпълнение. Ако го махна сработва кода, обаче получавам нежелан запис, при достъпване на страницата или при рефреш. Някакви идеи какво мога да направя?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 340
Bonus: 678
Мнения: 2556
Мнение 31/07/2017 12:47 pm      Отговорете с цитат


teroristd написа:
Реално if (isset($submit)) {} пречи на правилното изпълнение. Ако го махна сработва кода, обаче получавам нежелан запис, при достъпване на страницата или при рефреш. Някакви идеи какво мога да направя?


1. Как пречи if(isset($submit)) {} на правилното изпълнение.

2. Имаш ли някакъв routing? раздели си методите за post и get. Get като се достъпва страницата. Post. когато събмитваш формата.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1561
Мнение 31/07/2017 12:52 pm      Отговорете с цитат


Fakeheal написа:
teroristd написа:
Реално if (isset($submit)) {} пречи на правилното изпълнение. Ако го махна сработва кода, обаче получавам нежелан запис, при достъпване на страницата или при рефреш. Някакви идеи какво мога да направя?


1. Как пречи if(isset($submit)) {} на правилното изпълнение.

2. Имаш ли някакъв routing? раздели си методите за post и get. Get като се достъпва страницата. Post. когато събмитваш формата.


На първа страница съм пуснал кода който имам.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 340
Bonus: 678
Мнения: 2556
Мнение 31/07/2017 12:55 pm      Отговорете с цитат


teroristd написа:
Fakeheal написа:
teroristd написа:
Реално if (isset($submit)) {} пречи на правилното изпълнение. Ако го махна сработва кода, обаче получавам нежелан запис, при достъпване на страницата или при рефреш. Някакви идеи какво мога да направя?


1. Как пречи if(isset($submit)) {} на правилното изпълнение.

2. Имаш ли някакъв routing? раздели си методите за post и get. Get като се достъпва страницата. Post. когато събмитваш формата.


На първа страница съм пуснал кода който имам.


Smile еми, gl hf
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1561
Мнение 31/07/2017 1:04 pm      Отговорете с цитат


Не те разбрах Confused
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
flafy
Нов
Нов

Регистриран на: 22/09/2013 6:36 pm

Support: 7
Bonus: 14
Мнения: 58
Мнение 31/07/2017 1:37 pm      Отговорете с цитат


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

Относно проверката ти за тоя submit. Ние не знаем какво всъщност прави това
$submit = $this->_normalize->post('submit');, но щом казваш, че без проверката работи пробвай така и не би трябвало да получаваш нежелани записи в базата данни:
PHP code:
$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();
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1561
Мнение 31/07/2017 1:58 pm      Отговорете с цитат


Това $submit = $this->_normalize->post('submit'); е същото като $_POST['submit'].

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

Регистриран на: 20/08/2008 6:12 pm

Support: 131
Bonus: 244
Мнения: 3409
Мнение 31/07/2017 3:59 pm      Отговорете с цитат


Човек, имаш някакъв къстъм фреймуърк, ние трябва да гадаем какво се случва, след като разгадаем, ти пак не искаш да приемеш отговора, е как да стане? Сега и аз ще ти кажа да си разделиш гет-о и пост-а, дано този път разбереш

Седни, прочети малко как стават нещата, а не пиши собствен фреймуърк, след като не знаеш разликата между гет и пост. Хайде, за да стане още по-голяма манджа ти давам жокер if($_SERVER['REQUEST_METHOD'] == 'POST')
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 340
Bonus: 678
Мнения: 2556
Мнение 31/07/2017 4:11 pm      Отговорете с цитат


Btw тук за N-ти път се пуска един try catch, който е логически ребус за гении. Very Happy

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

Последната промяна е направена от Fakeheal на 31/07/2017 4:15 pm; мнението е било променяно общо 1 път
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> HTML / Javascript / CSS Часовете са според зоната GMT + 2 Часа
123
Страница 2 от 3


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети