0 / 0 / 0
Регистрация: 17.11.2015
Сообщений: 26
1

Не получается два раза вызвать функцию

06.01.2017, 17:02. Показов 1257. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день
Жалуется на $_SESSION['total_items'] = total_item($_SESSION['cart']); в add_cart
Fatal error: Uncaught Error: Call to undefined function total_item() in C:\xampp\htdocs\shop\index.php:34 Stack trace: #0 {main} thrown in C:\xampp\htdocs\shop\index.php on line 34
при чем в случае case ('update_cart'): все работает нормально.
Это главный index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
include('db_functions.php');
include('cart_functions.php');
if(!isset($_SESSION))
{
    session_start();
}
if (!isset($_SESSION['cart'])){
    $_SESSION['cart'] = array();
    $_SESSION['total_items'] = 0;
    $_SESSION['total_price'] = '0.00';
}
$view = empty($_GET['view']) ? 'index' : $_GET['view'];
global $products;
switch ($view){
    case('index'):
        $products = get_products();
        break;
    case ('cat'):
        $id = $_GET['id'];
        $products = get_cat_products($id);
        break;
    case ('product'):
        $id = $_GET['id'];
        $products = get_product($id);
        break;
    case ('cart'):
        break;
    case ('add_to_cart'):
        $id = $_GET['id'];
        $add_item = add_to_cart($id);
        $_SESSION['total_items'] = total_item($_SESSION['cart']);
        header('Location: index.php?view=product&id='.$id);
        break;
    case ('update_cart'):
        update_cart();
        $_SESSION['total_items'] = total_item($_SESSION['cart']);
        header('Location: index.php?view=cart');
        break;
}
include($_SERVER['DOCUMENT_ROOT'] . '/shop/views/layouls/index.php');
?>
Добавлено через 1 минуту
Тут cart_functions
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
function add_to_cart($id){
    if (isset($_SESSION['cart'][$id])){
        $_SESSION['cart'][$id]++;
        return true;
    }
    else {
        $_SESSION['cart'][$id]=1;
        return true;
    }
    return false;
 
}
function update_cart() {
foreach ($_SESSION['cart'] as $id => $qty){
    if($_POST[$id]=='0'){
        unset($_SESSION['cart'][$id]);
        session_unset() ;
    }
    else {
        $_SESSION['cart'][$id]=$_POST[$id];
    }
}
    function total_item($cart){
        $num_items = 0;
        if(is_array($cart)){
            foreach ($cart as $id => $qty){
                $num_items = $num_items + $qty;}
        }
        return $num_items;
    }
    function total_item1($cart){
        $num_items = 0;
        if(is_array($cart)){
            foreach ($cart as $id => $qty){
                $num_items = $num_items + $qty;}
        }
        return $num_items;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2017, 17:02
Ответы с готовыми решениями:

Не получается вызвать функцию
Всем привет! Возникла проблема: необходимо вызвать функцию, но система ругается. Если кому...

Не получается вызвать функцию
Есть функция &quot;void __fastcall TForm1::Image2MouseDown(TObject *Sender, TMouseButton Button, ...

Не получается вызвать функцию
В агентстве недвижимости продают квартиры, комнаты и частные дома. Квартиры характеризуются этажом,...

Прототип - не получается вызвать функцию
Здравствуйте написал функцию так, но когда вызываю так, Layer._close();, пишет, что функции...

1
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
06.01.2017, 17:53 2
У тебя скобки неправильно расставлены. Смотри начиная с 23 строки. После foreach тело функции не закрыто и идет объявление новой функции. В php такая функция не будет доступна до вызова update_cart
0
06.01.2017, 17:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2017, 17:53
Помогаю со студенческими работами здесь

Не получается вызвать функцию в switch
Помогите пожалуйста. Начал писать программу на С++, для отображения аккаунтов из файла на консоль,...

Не получается вызвать функцию CreateDirectory()
Такой код: CreateDirectory(L&quot;D:\\AAA&quot;, NULL); - работает нормально. А такой: HMODULE h =...

не получается вызвать пользовательскую функцию
есть пользовательская функция для ввода определенной строки после проверок, как только...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru