Алексей, может быть дело в этой строке в шаблоне компонента?
Код |
---|
if($arResult["SUCCESS"]) {
LocalRedirect($APPLICATION->GetCurPageParam("success=".$arResult["HASH"], Array("success")));
} elseif($_REQUEST["success"] == $arResult["HASH"]) {
echo $arParams["OK_TEXT"];
}
|
Т.е. при использовании стандартного аякс механизма, может стоит не использовать переадресацию через LocalRedirect при успешном добавлении заказа?
Хотя не знаю, каким образом здесь может быть замешан $APPLICATION->GetTitle().
Также вы можете не использовать стандартный механизм аякс, а сделать свой обработчик, вот пример на jquery для шаблона данного компонента.
Код |
---|
<?
if(!defined("B_PROLOG_INCLUDED")||B_PROLOG_INCLUDED!==true)die();
if($arParams["ONLY_SHOW_FORM"]!="Y") {
if($_REQUEST["ajax_fastorder"]=="Y") {
$APPLICATION->RestartBuffer();
if($arResult["SUCCESS"]) {
echo json_encode(Array("result"=>"success","message"=>"<i class=\"icon-check\"></i>".$arParams["OK_TEXT"]));
} elseif(!empty($arResult["ERROR_MESSAGE"])) {
echo json_encode(Array("result"=>"error","message"=>implode("<br />",$arResult["ERROR_MESSAGE"])));
}
die();
} else {
if($arResult["SUCCESS"]) {
echo $arParams["OK_TEXT"];
} elseif(!empty($arResult["ERROR_MESSAGE"])) {
foreach($arResult["ERROR_MESSAGE"] as $v)
ShowError($v);
}
}
}
if($arParams["ONLY_PROCESSING"]=="Y") return;
?>
<div class="popup-done" id="grain_fast_order_success" style="display: none"></div>
<form action="<?=$APPLICATION->GetCurPage()?>" method="POST" class="grain-fast-order-order" id="grain_fast_order">
<span class="grain-fast-order-error" id="grain_fast_order_error" style="display: none"></span>
<span class="caption"><?=GetMessage("GRAIN_FO_HEADER")?>:</span>
<?if(in_array("NAME",$arParams["SHOW_FIELDS"])):?>
<input type="text" name="user_name" placeholder="<?=GetMessage("GRAIN_FO_NAME")?>" value="<?=$arResult["AUTHOR_NAME"]?>" class="input-gray"/>
<?endif?>
<?if(in_array("EMAIL",$arParams["SHOW_FIELDS"])):?>
<input type="text" name="user_email" placeholder="<?=GetMessage("GRAIN_FO_EMAIL")?>" value="<?=$arResult["AUTHOR_EMAIL"]?>" class="input-gray"/>
<?endif?>
<?if(in_array("PHONE",$arParams["SHOW_FIELDS"])):?>
<input type="text" name="user_phone" placeholder="<?=GetMessage("GRAIN_FO_PHONE")?>" value="<?=$arResult["AUTHOR_PHONE"]?>" class="input-gray phone-input"/>
<?endif?>
<?if($arParams["USE_CAPTCHA"] == "Y"):?>
<div class="grain-fo-captcha">
<div class="grain-fo-text"><?=GetMessage("GRAIN_FO_CAPTCHA")?></div>
<input type="hidden" name="captcha_sid" value="<?=$arResult["capCode"]?>">
<img src="/bitrix/tools/captcha.php?captcha_sid=<?=$arResult["capCode"]?>" width="180" height="40" alt="CAPTCHA">
<div class="grain-fo-text"><?=GetMessage("GRAIN_FO_CAPTCHA_CODE")?><span class="grain-fo-req">*</span></div>
<input type="text" name="captcha_word" size="30" maxlength="50" value="">
</div>
<?endif;?>
<input type="hidden" name="HASH" value="<?=$arResult["HASH"]?>">
<input type="hidden" name="ajax_fastorder" value="Y">
<input type="hidden" name="submit" value="Y">
<input type="submit" value="<?=GetMessage("GRAIN_FO_SUBMIT")?>" class="btn btn-green">
</form>
<?
$().ready(function(){
$("#grain_fast_order").submit(function(){
$.post($(this).attr("action"),$(this).serialize(),false,"json")
.done($.proxy(function(data) {
if(data.result=="success") {
$("#grain_fast_order_success").html(data.message).show();
$(this).hide();
} else if(data.result=="error") {
$("#grain_fast_order_error").html(data.message).show();
}
},this))
.fail($.proxy(function(data) {
//alert("error");
},this));
return false;
});
});
|