Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Add2BasketByProductID

00 голосов
6
Создал скрипт добавления в корзину

Код
<?include $_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include.php";?>

<?
    if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))
    {
        if (isset($_POST['ID'])&&(isset($_POST['QUANTITY']))) {
            $ID = intval($_POST['ID']);
            $QUANTITY = intval($_POST['QUANTITY']);
            Add2BasketByProductID(
                $ID,
                $QUANTITY,
                false,
            );
        }
        else {
            echo "Нет параметров ";
        }
    }
    else {
        echo "Не подключены модули"
    }
?>


В jquery передаю ему данные таким образом:
Код
function add2basket(ID) {

    //alert(ID + " / " + $("#tov" + ID).val());

    $.ajax({

        type: "POST",

        url: "/bitrix/templates/cpt_main/add2basket_ajax.php",

        data: {

            ID: ID,

            QUANTITY: $("#tov" + ID).val(),

        },

        success: function(msg){

            alert(msg);

        }

    });

}


Получаю ошибку:
Цитата
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0

Fatal error: Unknown: Failed opening required '/home/thunder/www/shop.x58c/bitrix/templates/cpt_main/add2basket_ajax.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0
спросил 16 Окт, 13 от Lisica (900 баллов)

6 Ответы

00 голосов
Цитата
Рамиль Миннигалиев пишет:
<?include $_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include.php";?>



заменить на

require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
ответил 06 Ноя, 13 от Lekar (2,220 баллов)
00 голосов
точно, но уже не проверю сегодня, пойду спать, у мну уже 2.20...

спасибо, тезка ;)
ответил 12 Фев, 14 от Lisica (900 баллов)
00 голосов
Блин, облом, не в этом дело... та же самая ошибка возвращается.
ответил 03 Июнь, 14 от Lisica (900 баллов)
00 голосов
Цитата
Рамиль Миннигалиев пишет:
$_SERVER['DOCUMENT_ROOT']



Смотри на правильность $_SERVER['DOCUMENT_ROOT'], и http://yandex.ru/yandsearch?rpt=rad&text=Fatal+error%3A+Unknown%3A+Failed+opening+required&lr=11067
ответил 30 Сен, 14 от Lekar (2,220 баллов)
00 голосов
Код
<? require_once ($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include.php");?>

<?
    if (CModule::IncludeModule("sale") && CModule::IncludeModule("catalog"))
    {
        if (isset($_POST['PRODUCT_ID'])&&isset($_POST['QUANTITY'])) {
            $PRODUCT_ID = intval($_POST['PRODUCT_ID']);
            $QUANTITY = intval($_POST['QUANTITY']);
            //echo $PRODUCT_ID."/".$QUANTITY;
            Add2BasketByProductID(
                $PRODUCT_ID,
                $QUANTITY,
                false
            );
        }
        else {
            echo "Нет параметров ";
        }
    }
    else {
        echo "Не подключены модули";
    }
?>

работает.
ответил 02 Фев, 15 от Lisica (900 баллов)
00 голосов
а у меня примерно то же самое но добавляет товар дважды! (

Оказывается если использовать конструкцию:
Код
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Малая корзина");
$APPLICATION->RestartBuffer(); //для ajax mode

то Add2BasketByProductID добавляет товар дважды, а если
Код
require_once ($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include.php");

то как нужно
ответил 16 Май, 15 от nariya (140 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 23 Апр, 14 от Snezhka (2,240 баллов)
0 голосов
0 ответов
спросил 21 Сен, 13 от Xsana (240 баллов)