Задать вопрос
  • Как лучше организовать IT-инфраструктуру предприятия?

    @KTG Автор вопроса
    Спасибо. Учту как начну переходить к отдельно взятым частям. Сейчас хотелось бы просто в целом итоговую картину получить.
  • Как лучше организовать IT-инфраструктуру предприятия?

    @KTG Автор вопроса
    Ezhyg, извините. свичи. маленькие свичи.
  • (Oracle) Возможен ли откат после COMMIT (UNDO Segment?)?

    @KTG Автор вопроса
    почитаю поподробнее про flashback. спасибо.

    А по UNDO, я думал это уже другой сегмент. До коммита вроде как есть ROLLBACK сегмент.
    Вернее да же так (как я понимаю), после коммита, можно все ещё использовать механизм роллбэк.

    Если транзакция, которая сгенерировала данные отмены, не активна (зафиксирована), то данные отмены считаются зафиксированными (commited). Зафиксированные данные отмены могут быть либо устаревшими (expired), либо не устаревшими (unexpired). Устаревшие данные могут быть переписаны новыми транзакциями.Oracle постарается сохранить не устаревшие данные как можно дольше, в пределах ограничений пространства отмены. Когда не останется места в табличном пространстве отмены для новых транзакций, Oracle в конечном итоге перепишет не устаревшие данные, в зависимости от того, как сконфигурирован параметр UNDO_RETENTION.
    Источник

    и

    Перед выполнением COMMIT Oracle генерирует логи данных отмены (undo) и повторного выполнения (redo) (они могут быть даже записаны на диск). При выполнении оператора COMMIT таблицы транзакций redo-записей отмечаются SCN (англ. system change number, «номер изменения системы»), буферы redo-журнала сбрасываются на диск (на этом этапе транзакция считается завершённой), освобождаются блокировки, а транзакция отмечается как завершённая

    источник
  • (Oracle) Возможен ли откат после COMMIT (UNDO Segment?)?

    @KTG Автор вопроса
    Спасибо почитаю.
    Но на текущей базе он отключен.
  • Как записать выборку во временный массив Oracle?

    @KTG Автор вопроса
    DECLARE
        TYPE tbl IS TABLE OF NUMBER
            INDEX BY VARCHAR2(40);
        myTbl tbl;
    BEGIN
        myTbl('7685') := 7685;
        IF myTbl.exists(7685) THEN
            DBMS_OUTPUT.PUT_LINE('ok');
        END IF;
    END;


    Но теперь не совсем представляю как проставлять индексы при BULK COLLECTION INTO
    DECLARE
        TYPE tbl IS TABLE OF NUMBER
            INDEX BY VARCHAR2(40);
        myTbl tbl;
    BEGIN
        SELECT 7685 BULK COLLECT INTO myTbl FROM dual;
        
        IF myTbl.exists(7685) THEN
            DBMS_OUTPUT.PUT_LINE('ok');
        END IF;
    END;
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Заметил ошибку в тесте битрикса. Ругался на LocalRedirect - внутреннее перенаправление.

    добавил порт 443 в dbconn и все заработало.
    Никто не признается где и что отключил, или какую настройку сделал. А это может быть и на прокси, и на веб-сервере, и в самом битриксе...
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Роман Грицук, тега нет.
    Ссылку дать не могу - внутренний сайт, с внешки не доступен.
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Только одна, но она на всех страницах и была до меня
    Uncaught TypeError: Cannot set property 'innerHTML' of null
        at new qq.FileUploader (fileuploader.js:583)
        at createUploader ((index):101)
        at (index):113
        at HTMLDocument.ready (jcf.js:611)

    Но это ошибка в коде js скрипта для загрузки файлов.
    Других ошибок нет.
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Вставил ваш код. Начал смотреть консоль (что давно пора было сделать)
    Mixed Content: The page at 'https://mysite/razdel/' 
    was loaded over HTTPS, but requested an insecure form action
    'http://mysite/razdel/?WEB_FORM_ID=8&RESULT_ID=7776&…=addok&bxajaxid=823b0aa…&AJAX_CALL=Y'. 
    This request has been blocked; 
    the content must be served over HTTPS.

    Хотя через ту же консоль смотрю в action формы там относительная ссылка стоит.
    action="/razdel/"
    Ссылка по которой форму смотрю в браузере:
    https://mysite/razdel/
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Сделал больше.
    Шаблон (template.php) который в папке сайта создавал - удалил.
    Создал новую форму. В настройки шаблона вообще не лез.
    Создал 1 вопрос и 1 статус.
    На странице бросил элемент форма. У которого изначально есть флаг включения AJAX. В коде это так:
    <?$APPLICATION->IncludeComponent(
    	"bitrix:form",
    	"",
    	Array(
    		"AJAX_MODE" => "Y",
    		"AJAX_OPTION_ADDITIONAL" => "",
    		"AJAX_OPTION_HISTORY" => "N",
    		"AJAX_OPTION_JUMP" => "N",
    		"AJAX_OPTION_STYLE" => "Y",
    		"CACHE_TIME" => "3600",
    		"CACHE_TYPE" => "A",
    		"CHAIN_ITEM_LINK" => "",
    		"CHAIN_ITEM_TEXT" => "",
    		"COMPONENT_TEMPLATE" => ".default",
    		"EDIT_ADDITIONAL" => "N",
    		"EDIT_STATUS" => "Y",
    		"IGNORE_CUSTOM_TEMPLATE" => "N",
    		"NOT_SHOW_FILTER" => array("",""),
    		"NOT_SHOW_TABLE" => array("",""),
    		"RESULT_ID" => $_REQUEST[RESULT_ID],
    		"SEF_MODE" => "N",
    		"SHOW_ADDITIONAL" => "N",
    		"SHOW_ANSWER_VALUE" => "N",
    		"SHOW_EDIT_PAGE" => "Y",
    		"SHOW_LIST_PAGE" => "Y",
    		"SHOW_STATUS" => "Y",
    		"SHOW_VIEW_PAGE" => "Y",
    		"START_PAGE" => "new",
    		"SUCCESS_URL" => "",
    		"USE_EXTENDED_ERRORS" => "N",
    		"VARIABLE_ALIASES" => Array("action"=>"action"),
    		"WEB_FORM_ID" => "10"
    	)
    );?>

    По итогу форма не отправляется. Да же не показывает страницу результата.
    Данные с формы записывает.

    Ладно, удалил элемент формы со страницы и через код вставил ваш пример. Подставил ID своей новой формы.

    Мне кажется где-то причина за пределами компонента формы?
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Роман Грицук, Тогда получается я в template.php вызываю $APPLICATION->IncludeComponent.
    Но как тогда добавлять hidden поля, вешать js обработчики. Ну или вообще кастомизировать форму?
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Пока получается вот что:
    Если отключить использование ЧПУ на компоненте, и указать страницу результата на саму себя, то он выведет статус, но разумеется сделает перезагрузку страницы. Тут от AJAX не осталось ничего.

    А если оставить ЧПУ - то он вообще никуда не отправляет. И ничего не происходит. Да и собственно нет цели показывать результат отправки формы.
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Роман Грицук, да вот в том и дело что нет его.
    Сделал print_r($arResult) и что-то не нашел разницы в содержимиом до отправки и после
    $arResult["FORM_NOTE"] вообще отсутствует в $arResult...что странно.

    При всем при этом результат сохраняется.
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
    
    if($arResult["isFormErrors"] == "Y")
    	{
    		echo $arResult["FORM_ERRORS_TEXT"];
    	};
    print_r($arResult);
    echo $arResult["FORM_NOTE"];
    
    echo $arResult["FORM_HEADER"];                            
    
    if ($arResult["isFormNote"] != "Y")
    	{
    //============== TABLE TITLE ====================/
    		echo "<table>";
    		if ($arResult["isFormDescription"] == "Y" || $arResult["isFormTitle"] == "Y" || $arResult["isFormImage"] == "Y")
    			{
    		echo "<tr><td>";
    		if ($arResult["isFormTitle"])
    			{
    				echo "<h3>".$arResult["FORM_TITLE"]."</h3>";
    			};
    	
    		echo "<p>".$arResult["FORM_DESCRIPTION"]."</p>";
    		echo "</td></tr>";
    	};
    		echo "</table>";
    //============== QUESTION ====================/
    		echo "<table>";	
    
    		foreach ($arResult["QUESTIONS"] as $FIELD_SID => $arQuestion)
    			{
    
    				if ($arQuestion['STRUCTURE'][0]['FIELD_TYPE'] == 'hidden')
    					{
    						if ($FIELD_SID == "IP")
    							{
    								$id = $arQuestion["STRUCTURE"][0]["ID"];
    							        echo "<tr><td>"; 
    							        echo "<input type='hidden' name='form_hidden_".$id."' value='".$_SERVER["REMOTE_ADDR"]."'>"; 
    								echo "</td></tr>";
    							}
    						else 
    							{
    								echo $arQuestion["HTML_CODE"];
    							}
    					}
    				else
    					{
    						echo "<tr><td>";
    						if (is_array($arResult["FORM_ERRORS"]) && array_key_exists($FIELD_SID, $arResult['FORM_ERRORS']))
    							{
    								echo "<span class='error-fld' title='".$arResult["FORM_ERRORS"][$FIELD_SID]."'></span>";
    							};
    						echo $arQuestion["CAPTION"];
    						if ($arQuestion["REQUIRED"] == "Y")
    							{
    								echo $arResult["REQUIRED_SIGN"];
    							};
    						if ($arQuestion["IS_INPUT_CAPTION_IMAGE"] == "Y")
    							{
    								echo "<br />".$arQuestion["IMAGE"]["HTML_CODE"];
    							};
    
    						echo $arQuestion["HTML_CODE"];
    						echo "</td></tr>";
    					}
    			} //endwhile
    			echo "<tr>";
    			echo "<td><input ".(intval($arResult["F_RIGHT"]) < 10 ? "disabled=\"disabled\"" : "")." type='submit' name='web_form_submit' value='Submit' /></td>";
    			echo "</tr>";
    			echo "</table>";
    		echo "<p>";
    		echo $arResult["REQUIRED_SIGN"]." - ".GetMessage("FORM_REQUIRED_FIELDS");
    		echo "</p>";
    		echo $arResult["FORM_FOOTER"];
    };
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Стоит "использовать шаблон формы по умолчанию"
    и в настройках компонента "игнорировать шаблон".
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Роман Грицук, а с сообщением "Загрузка" чего делать? И как ответ получить что все загрузилось?
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    Роман Грицук, простой шаблон выводится из компонента, и получает $arResult

    Поменял содержимое файла на:
    $arTemplateParameters и расписал внутрянку.
    Так же в шаблоне локалии "lang/ru/" добавил строку $MESS ['TP_FBF_AJX'] = "AJAX";
    $arTemplateParameters = array(
    	"AJAX_MODE" => array(
    		"NAME" => GetMessage("TP_FBF_AJX"),
    		"TYPE" => "STRING",
    		"DEFAULT" => "Y",
    		)
    	)


    По итогу в визуальном редакторе можно найти настройку компонента Ajax.
    Одна проблема осталась. При отправке формы - данные отправляются и записываются. НО!
    Висит табличка "Загрузка" и больше ничего не происходит, да же обратного ответа нет. Хотя используется элемент "ответ формы".
  • Есть шаблон form.result.new. Как прикрутить Ajax?

    @KTG Автор вопроса
    проверяю $arParams - не получает такого параметра