Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

не видит переменную $data в базе данных


Recommended Posts

Добрый день, необходимо на сайте создать 4 дополнительных поля город улицу дом и квартиру, в личном кабинете так чтобы можно было редактировать их во вкладке общих данных пользователя. Мои действия

 

в базе данных в таблице oc_customer создал четыре поля - city_user, street_user, house_user, apartment_user,

соответственно в

catalog/model/account/customer.php

 

вывел в функции editCustomer
 

    public function editCustomer($data) {
        $customer_id = $this->customer->getId();

        $this->db->query("UPDATE " . DB_PREFIX . "customer SET firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', city_user = '" . $this->db->escape($data['city_user']) . "', street_user = '" . $this->db->escape($data['street_user']) . "', house_user = '" . $this->db->escape($data['house_user']) . "', apartment_user = '" . $this->db->escape($data['apartment_user']) . "', fax = '" . $this->db->escape($data['fax']) . "', custom_field = '" . $this->db->escape(isset($data['custom_field']) ? json_encode($data['custom_field']) : '') . "' WHERE customer_id = '" . (int)$customer_id . "'");
    }

 

 


в контроллере catalog/controller/account/edit.php вывел переменные

 

if (isset($this->request->post['city_user'])) {
            $data['city_user'] = $this->request->post['city_user'];
        } elseif (!empty($customer_info)) {
            $data['city_user'] = $customer_info['city_user'];
        } else {
            $data['city_user'] = '';
        }
        
        if (isset($this->request->post['street_user'])) {
            $data['street_user'] = $this->request->post['street_user'];
        } elseif (!empty($customer_info)) {
            $data['street_user'] = $customer_info['street_user'];
        } else {
            $data['street_user'] = '';
        }
        
        if (isset($this->request->post['house_user'])) {
            $data['house_user'] = $this->request->post['house_user'];
        } elseif (!empty($customer_info)) {
            $data['house_user'] = $customer_info['house_user'];
        } else {
            $data['house_user'] = '';
        }
        
        if (isset($this->request->post['apartment_user'])) {
            $data['apartment_user'] = $this->request->post['apartment_user'];
        } elseif (!empty($customer_info)) {
            $data['apartment_user'] = $customer_info['apartment_user'];
        } else {
            $data['apartment_user'] = '';
        }

 

в шаблоне catalog/view/theme/default/template/account/edit.tpl

 

вывел их как echo $city_user, $street_user, $house_user, $apartment_user

 

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

 

в контроллере увидел как срабатывает функция editCustomer
 

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {

            
            $this->model_account_customer->editCustomer($this->request->post);

            $this->session->data['success'] = $this->language->get('text_success');
            
            

            // Add to activity log
            if ($this->config->get('config_customer_activity')) {
                $this->load->model('account/activity');

                $activity_data = array(
                    'customer_id' => $this->customer->getId(),
                    'name'        => $this->customer->getFirstName() . ' ' . $this->customer->getLastName()
                );

                $this->model_account_activity->addActivity('edit', $activity_data);
            }

                $this->response->redirect($this->url->link('account/account', '', true));
        }

то есть при получении данных с формы post запросом. При клике на кнопку продолжить в шаблоне у меня вылазит следующее

Notice: Undefined index: city_user in /home/l/lexanntr/you-and-care.ru/public_html/catalog/model/account/customer.php on line 100Notice: Undefined index: street_user in /home/l/lexanntr/you-and-care.ru/public_html/catalog/model/account/customer.php on line 100Notice: Undefined index: house_user in /home/l/lexanntr/you-and-care.ru/public_html/catalog/model/account/customer.php on line 100Notice: Undefined index: apartment_user in /home/l/lexanntr/you-and-care.ru/public_html/catalog/model/account/customer.php on line 100Warning: Cannot modify header information - headers already sent by (output started at /home/l/lexanntr/you-and-care.ru/public_html/catalog/controller/startup/error.php:34) in /home/l/lexanntr/you-and-care.ru/public_html/system/library/response.php on line 12

 

помогите разобраться в чем дело и что я упустил...искренне буду благодарен

 

Надіслати
Поділитися на інших сайтах

понял в чем проблема через несколько минут после того как сюда запостил ) , может кому нибудь пригодится, я совсем забыл что данные с формы а именно данные с POST запросом считываются через параметр name в инпутах. В этом и была моя ошибка, все что мне нужно было сделать это задать инпутам такие же name , как название переменных т.е.

 

занчения базы я записал в переменные

$city_user, $street_user, $house_user, $apartment_user

 

соответственно чтобы данные при передаче post запроса считывались мне необходимо было задать
 

<label><span>Город</span>
<input type="text" name="city_user" placeholder="" value="<?php  echo $city_user; ?>">
</label>
<label><span>Улица</span>
<input type="text" name="street_user" placeholder="" value="<?php  echo $street_user; ?>">
</label>
<label class="dom"><span>Дом</span>
<input type="text" name="house_user" placeholder="" value="<?php  echo $house_user; ?>">
</label>
<label><span>Квартира</span>
<input type="text" name="apartment_user" placeholder="" value="<?php  echo $apartment_user; ?>">
</label>

и все заработало

  • +1 1
Надіслати
Поділитися на інших сайтах

Зачем? Функционал магазина предусматривает кастомные поля, которые можно создать из админки

Надіслати
Поділитися на інших сайтах

2 часа назад, Flint2000 сказал:

Зачем? Функционал магазина предусматривает кастомные поля, которые можно создать из админки

как говорят братья - американцы: because he can ;)

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.