Форумы / National / Russian / Тех. поддержка / AJAX - POST method - 403 forbidden

Передача формы ajax-ом

CrazyFreeMan
#1 20.04.2015 18:32

Добрый день

Столкнулся с проблемой (форум пролистал, решения что рекомендовали уже пробовал применить но без результата)

И так

Имеем последнего кота 0.9.18

Пишем плагин с использованием AJAX части

Не могу передать форму POST запросом.

Есть плагин что формирует ссылку которыя по клику обращается к ajax части где вызывается функция формирующая форму (подключает шаблон, заполняет все как нужно и возвращает), эта форма ajax-ом отлично подгружается нам на страницу - в ней присутствуют в се поля, без ошибок и в наличии скрытый x=sdfgsdfg45yrbhrgh  заполняем/изменяем форму - жму отправить (снова же все ajax-ом) и получаю ошибку 403 forbidden, покопавшись на форуме и методом подбора добавив в action формы x=$sys['xk'] форма отправляется но без данных, т.е. первый раз так же не принималась она из-за отсутствия параметра "x" и получал я 403.

Вот код (упрощенный но логика та же)

hook=ajax

if (COT_AJAX)
{	
	$id = cot_import('id', 'G', 'INT');	 // передаем по ссылке
	require_once cot_incfile('plugname', 'plug');
        echo cot_plugname_edit_form($id);
}

plugname.functions.php

function cot_plugname_edit_form($id){
	global $db, $sys, $L, $db_name;
	$ed = new XTemplate(cot_tplfile('pluginname', 'plug', true));
	$ror = $db->query("SELECT * FROM $db_name")->fetch();
	$ed->assign(array(
		"OFFER_FORM_ID" => $ror['id'],
		"OFFER_FORM_ACTION_URL" => cot_url('index', 'r=pluginname&a=save&id='.$id),
	));	
	$ed->parse('MAIN');	
	return $ed->text('MAIN'); пробовал и просто $ed->out('MAIN');
}

Что еще нужно знать?

Спасибо

Отредактировано: Ярослав Романенко (20.04.2015 18:42, 9 лет назад)
Dr2005alex
#2 20.04.2015 18:51

А tpl файл?

Хотя вообще проблема в доступе...

WebKaa.ru - Cotonti Relax
Отредактировано: Dr2005alex (20.04.2015 18:57, 9 лет назад)
CrazyFreeMan
#3 20.04.2015 19:19

Форма довольно банальная

<!-- BEGIN: MAIN -->
<div  class="customform well">
	<form action="{OFFER_FORM_ACTION_URL}" method="post" enctype="multipart/form-data" class="ajax post-ofad{OFFER_FORM_ID}">
		<table class="table">		
			<tr>
				<td align="left"></td>
				<td>
					<div class="pull-right">
						<input type="submit" name="submit" class="btn btn-success" value="{PHP.L.Save}" />
					</div>					
				</td>
			</tr>
		</table>
	</form>
</div>
<!-- END: MAIN -->

 

Dr2005alex
#4 20.04.2015 19:24

1)  нет id формы

2) post-ofad{OFFER_FORM_ID} - это указатель куда вывести результат выполнения. Т.е. результат должен выводится в див с id = fad{OFFER_FORM_ID}

Т.е. я вижу не правильное применение AjaxHelpers.

ПРимер для вариации

<!-- BEGIN: MAIN -->
<div  class="customform well">
    <form action="{OFFER_FORM_ACTION_URL}" method="post" enctype="multipart/form-data" class="ajax post-outdiv{OFFER_FORM_ID}" id = "ofad{OFFER_FORM_ID}">
        <table class="table">    
            <tr>
                <td align="left"></td>
                <td>
                    <div class="pull-right">
                        <input type="submit" name="submit" class="btn btn-success" value="{PHP.L.Save}" />
                    </div>                   
                </td>
            </tr>
        </table>
    </form>
</div>
<div id="outdiv{OFFER_FORM_ID}"></div>
<!-- END: MAIN -->

Добавлено 8 минут спустя:

Накидал пример работы с формой. http://www.cotonti.com/datas/users/world_84.rar плагин для теста.

WebKaa.ru - Cotonti Relax
Отредактировано: Dr2005alex (20.04.2015 19:34, 9 лет назад)
CrazyFreeMan
#5 20.04.2015 19:42

ИД есть, он просто на странице генерируется до аякса (все работает если гетом передавать).

Спасибо, разберу по букве, может что найду

Додано 12 хвилин потому:

Ппц, просто добавь воды, да, нужно было добавить ИД для формы которую отправляем

Ой как стыдно, спасибо за потрачено время, надеюсь кому-то еще поможет :)

Отредактировано: Ярослав Романенко (20.04.2015 19:54, 9 лет назад)
Dr2005alex
#6 20.04.2015 20:49

1)  нет id формы

Что и говорил!!!

WebKaa.ru - Cotonti Relax
Виктор
#7 18.12.2019 13:07

Накидал пример работы с формой. http://www.cotonti.com/datas/users/world_84.rar плагин для теста.

 

Подскажите как вывести подгружаемую форму в модальном окне () в бутстрап по умолчанию display: none; и при клике по ссылке, не работает?

Додано 25 хвилин потому:

в общем если кому пригодится нашел решение https://jsfiddle.net/ednon5d1/
Отредактировано: Виктор (18.12.2019 13:42, 4 года назад)