Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для [FENIX]
5 / 5 / 2
Регистрация: 09.10.2009
Сообщений: 557

не передаются данные из JS в PHP

10.05.2016, 09:42. Показов 725. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Народ, есть сайт: http://bodys.top/ При клике на кнопку "В корзину" срабатывает jQuery-метод:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Добавление новой покупки в список пользователя
    //.add-shop-card - класс для кнопки "В корзину"
    $('.add-shop-card').add('.shop-t-delete').on('click', function () {
        
        
        var th = $(this);
        var dataShopId = parseInt(th.attr('data-shop'));//Берём HTML-атрибут data-shop, т.е. это номер (id) товара
        var dataCount = parseInt(th.attr('data-count'));
        //
        var data = "p=2&shop_id=" + dataShopId + "&count=" + dataCount;//Пример строки: p=2&shop_id=82&count=1
        ajaxUpdateBasketData(data, 'inc/shop.php');//тут вызывается php-скрипт добавления товара в корзину
        
        
    });
Потом вызывается метод ajaxUpdateBasketData:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Функция добавления товара в корзину
 
function ajaxUpdateBasketData(dataSend, file) {
    
    $.ajax({
        type: "GET", //Я думаю что используется GET - потому что база изначальна уже была готовая. Из базы выдёргивается только id товара и его
                    //количество
 
        url: file, //файл inc/shop.php
        data: dataSend //Пример строки данных: p=2&shop_id=82&count=1
        
    }).done(function (data) {
        existsUpdateData = 1;
        if (data == 'new')
            showAlert(1, 'Товар удачно добавлен в корзину');
        if (data == 'update')
            showAlert(1, 'Товар удачно обновлен в корзине');
        if (data == 'delete')
            showAlert(2, 'Товар удален из корзины');
    });
 
}
Так вот, метод ajaxUpdateBasketData почему то не передаёт данные в php-файл shop.php, я из php никак данные выцепить не могу, помогите пожалуйста.

shop.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
 
//Устанавливаем соединение с БД
include_once("../config.php");
 
echo "test ";
echo $_GET['shop_id'];//В этой переменной ничего нет ((
 
mysql_close($connecDB);
 
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2016, 09:42
Ответы с готовыми решениями:

В Debug режиме в VS-2012 данные передаются нормально, но при запуске без дебага возникают ошибки и данные не передаются
Всем доброе время суток. Есть проект, работающий на ASP.NET MVC с использованием Entity Framework. Есть подключаемая база данных, из неё...

Не передаются данные с Java в PHP
По идеии, этот код должен передавать значение переменной email в переменную на сервере. Но этого не происходит! Помогите пожалуйста.// Code...

Данные из HTML-формы не передаются в PHP
Помогите, пожалуйста, начинающему! Есть HTML- файл: &lt;html&gt; &lt;head&gt; &lt;title&gt;Форма&lt;/title&gt; &lt;/head&gt; &lt;body&gt; ...

6
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
10.05.2016, 14:25
JavaScript
1
2
3
4
$.get( "test.cgi", { name: "John", time: "2pm" } )
  .done(function( data ) {
    alert( "Data Loaded: " + data );
  });
Попробуйте переписать ваш ajax под этот пример вместо name и time просто свое подставьте ну и test.cgi замените и что вам консоль показывает в вашем запросе?
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
10.05.2016, 14:32
Вроде все нормально в done зашло new вывело
Миниатюры
не передаются данные из JS в PHP  
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
10.05.2016, 14:34
Как видите все заходит все возвращается.
Миниатюры
не передаются данные из JS в PHP  
0
 Аватар для [FENIX]
5 / 5 / 2
Регистрация: 09.10.2009
Сообщений: 557
10.05.2016, 14:37  [ТС]
Упс, это я тупанул, в общем добавил в ajaxUpdateBasketData console.log(data) и видно, что результат есть, вот полная функция:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function ajaxUpdateBasketData(dataSend, file) {
    
    $.ajax({
        type: "GET",//Я думаю что используется GET - потому что база изначальна уже была готовая. Из базы выдёргивается только id товара и его
                    //количество
 
        url: file, //файл inc/shop.php
        data: dataSend, //Пример строки данных: p=2&shop_id=82&count=1
        
    }).done(function (data) {
        
    console.log(data);
            
        existsUpdateData = 1;
        if (data == 'new')
            showAlert(1, 'Товар удачно добавлен в корзину');
        if (data == 'update')
            showAlert(1, 'Товар удачно обновлен в корзине');
        if (data == 'delete')
            showAlert(2, 'Товар удален из корзины');
    }); 
}
Но теперь другая проблема. Не знаю как shop.php написать чтоб работал с корзиной товаров правильно. До меня человек делал http://dev.thelandpage.ru/body/. Доступов не осталось Мне надо вот сюда http://bodys.top/ точную копию сделать. Сейчас пока когда жму "В корзину" - появляется "Товар удачно добавлен в корзину" и всё )).
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
10.05.2016, 14:39
Это вам уже на фриланс, или начните делать и если будут вопросы спрашивайте.
0
 Аватар для [FENIX]
5 / 5 / 2
Регистрация: 09.10.2009
Сообщений: 557
15.05.2016, 18:08  [ТС]
Это вроде работает, корзина появляется, но теперь другая проблема появилась. Если пользователь жмёт кнопку "В корзину" - значению value элемента #form-buy-data присваивается название товара, и его количество. И потом если пользователь захочет добавить в корзину ещё какой-нибудь товар, и жмёт "В корзину" - то вместо того, чтобы значение нового товара "добавлялось" в #form-buy-data, оно меняется, т.е. просто меняется на новое, а это не есть гуд, т.к. при оформлении заказа форма будет брать этот атрибут value, а там будут не все товары, а только последний, может кто знает как это исправить? Вот код script2.js (точку останова ставим на 149 строке, там где var mss = data.split(';')):

JavaScript
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
var basketAllShop = 0;
var basketAllPrice = 0;
var existsUpdateData = 1;
 
var tlp = new TheLandPage();
 
$(document).ready(function () {
  // Кешируем объект окна
  $window = $(window);
  $('section[data-type="background"]').each(function () {
    var $bgobj = $(this); // Назначаем объект
    $(window).scroll(function () {
      // Прокручиваем фон со скоростью var.
      // Значение yPos отрицательное, так как прокручивание осуществляется вверх!
      var yPos = -($window.scrollTop() / $bgobj.data('speed'));
      // Размещаем все вместе в конечной точке
      var coords = '50% ' + yPos + 'px';
      // Смещаем фон
      $bgobj.css({backgroundPosition: coords});
    });
  });
 
  //
  // Shop buy
  //
 
  // Update basket after loading page
  setInterval(updateBasket, 500);
 
  // Add new shop in user list
  $('.add-shop-card').add('.shop-t-delete').on('click', function () {
    var th = $(this);
    var dataShopId = parseInt(th.attr('data-shop'));
    var dataCount = parseInt(th.attr('data-count'));
    //
    var data = "p=2&shop_id=" + dataShopId + "&count=" + dataCount;
    ajaxUpdateBasketData(data, 'inc/shop.php');
  });
 
  // Delete shop out basket
  $('body').on('click', '.shop-update-count', function () {
    var th = $(this);
    var dataShopId = parseInt(th.attr('data-shop'));
    var dataCount = parseInt(th.attr('data-count'));
    //
    var data = "p=2&shop_id=" + dataShopId + "&count=" + dataCount;
    ajaxUpdateBasketData(data, 'inc/shop.php');
  });
 
  // Show and hide full list of shops buy
  $('.show-all-buy').on('click', function () {
    var fullListShops = $('#shop-all-list');
    //
    $('.show-all-buy').removeClass('hidden');
    $(this).addClass('hidden');
    //
    if (fullListShops.hasClass('hidden')) {
      fullListShops.removeClass('animated fadeOutDown');
      fullListShops.addClass('animated fadeInUp');
      fullListShops.removeClass('hidden');
    }
    else {
      fullListShops.removeClass('animated fadeInUp');
      fullListShops.addClass('animated fadeOutDown');
 
      setTimeout(function () {
        fullListShops.addClass('hidden');
      }, 500);
    }
  });
 
  // Form send data
  tlp.ajaxForm('#form1', 'send.php');
  tlp.ajaxForm('#form2', 'send.php');
  tlp.ajaxForm('#form3', 'send.php');
  tlp.ajaxForm('#form6', 'send2.php');
 
});
 
 
$(window).scroll(function () {
  //
  // Change shop menu
  //
  var windowTop = $(window).scrollTop() + 80;
  var headerMenuShop = $('#header-shop-menu');
  var menuShop = $('#menu');
  var blockRegion = $('#box-5-w').offset().top + $('#box-5-w').height();
 
  var animShow = 'fadeInUpRubber';
  var animHidden = 'slideOutDown';
 
  if (menuShop.offset().top < windowTop) {
    // If user not visible block of shop
    if (blockRegion < windowTop) {
      if (!headerMenuShop.hasClass('hidden')) {
        // Animated
        var menuItems = $('.menu-5-small');
        menuItems.removeClass('animated ' + animShow);
        menuItems.addClass('animated ' + animHidden);
        setTimeout(function () {
          headerMenuShop.addClass('hidden');
        }, 500);
      }
    }
    // If user visible block of shop
    else {
      if (headerMenuShop.hasClass('hidden')) {
        headerMenuShop.removeClass('hidden');
        // Animated
        var menuItems = $('.menu-5-small');
        menuItems.removeClass('animated ' + animHidden);
        menuItems.addClass('animated ' + animShow);
      }
    }
  }
  // If user higher block of shop
  else {
    if (!headerMenuShop.hasClass('hidden')) {
      // Animated
      var menuItems = $('.menu-5-small');
      menuItems.removeClass('animated ' + animShow);
      menuItems.addClass('animated ' + animHidden);
      setTimeout(function () {
        headerMenuShop.addClass('hidden');
      }, 500);
    }
  }
});
 
 
//
// Work with shop basket
//
 
function updateBasket() {
  if (existsUpdateData == 1) {
    var file = 'inc/shop.php';
    var basketBlock = $('#shop-card-block');
    var basketItemsCount = $('#basket-items-count');
    var basketItemsPrice = $('#basket-items-price');
    var formBuyData = $('#form-buy-data');
    // Update counters
    $.ajax({
      type: "GET",
      url: file,
      data: "p=0"
    }).done(function (data) {
        var mss = data.split(';');
        basketAllShop = mss[0];
        basketAllPrice = mss[1];
        // update elements
        basketItemsCount.html(basketAllShop);
        basketItemsPrice.html(basketAllPrice);
        formBuyData.val(mss[2]);
        updateBasketShowState();
      });
    // Update html in basket
    $.ajax({
      type: "GET",
      url: file,
      data: "p=1"
    }).done(function (data) {
        basketBlock.html(data);
      });
    existsUpdateData = 0;
  }
}
 
function updateBasketShowState() {
  var basket = $('#shop-basket');
  // Update basket bottom state
  if (basketAllShop > 0) {
    basket.removeClass('hidden');
    basket.removeClass('animated fadeOutDown');
    basket.addClass('animated fadeInUp');
  }
  else {
    basket.removeClass('animated fadeInUp');
    basket.addClass('animated fadeOutDown');
    setTimeout(function () {
      basket.addClass('hidden')
    }, 500);
  }
}
 
function ajaxUpdateBasketData(dataSend, file) {
  $.ajax({
    type: "GET",
    url: file,
    data: dataSend
  }).done(function (data) {
      existsUpdateData = 1;
      if (data == 'new')
        showAlert(1, 'Товар удачно добавлен в корзину');
      if (data == 'update')
        showAlert(1, 'Товар удачно обновлен в корзине');
      if (data == 'delete')
        showAlert(2, 'Товар удален из корзины');
    });
}
 
function showAlert(type, text) {
  var obj = $('.alert-success');
  if (type == 2) {
    obj = $('.alert-fail');
  }
  obj.html(text);
  obj.removeClass('hidden');
  obj.removeClass('animated fadeOut');
  obj.addClass('animated fadeIn');
  setTimeout(function () {
    obj.removeClass('animated fadeIn');
    obj.addClass('animated fadeOut');
    setTimeout(function () {
      obj.addClass('hidden');
    }, 1000);
  }, 2000);
}
 
/*
 * Создаем элементы HTML5 для IE
 */
 
document.createElement("article");
document.createElement("section");
А вот файл shop.php и basket.class.php, который отдаёт js-скрипту обработанные данные:

shop.php:

PHP
1
2
3
<?php
include_once "../inc/basket.class.php";
Basket::process();
basket.class.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<?php
 
class Basket {
 
  static $error = 0;
  static $response = '';
  static $product = array();
  static $process = 0;//0 - вывод продукта, 1 - вывод корзины, 2 - добавление/удаление товара
  static $count = 0;//0 - удаление продукта
  static $do = 0;//0 - удаление продукта
 
  static function process() {
 
    include_once "../inc/config.php";
    include_once "../inc/mysqli.class.php";
 
    DB::connect(DBUSER, DBPASS, DBNAME, DBHOST,1);
 
    if (mysqli_connect_errno()) {
      echo 'ќшибка подключени¤: ' . mysqli_connect_errno();
      die();
    }
 
    session_start ();
 
    self::$process = (int)(isset($_GET['p']) ? $_GET['p'] : 0);
 
    switch (self::$process) {
      case -1:
        unset($_SESSION['basket']);
      default:
      case 0:
        self::get_product();
        break;
      case 1:
        self::get_basket();
        break;
      case 2:
        self::add_remove_product();
        break;
    }
 
    self::complete();
 
  }
 
  static function get_basket() {
 
    $template = '
      <div class="shop-t">
        <div class="shop-update-count shop-t-delete" data-shop="{product_id}" data-count="0">+</div>
        <div class="shop-t-photo"><img src="{img_path}"/></div>
        <div class="shop-t-name">{product_name}</div>
        <div class="shop-t-price">{price} руб.</div>
        <div class="shop-t-count">
            <span class="shop-update-count shop-t-count-minus" data-shop="{product_id}" data-count="0">-</span>
            <span class="shop-t-count-num">{count}</span>
            <span class="shop-update-count shop-t-count-plus" data-shop="{product_id}" data-count="2">+</span>
        </div>
      </div>
    ';
 
    $html = '';
    if (isset($_SESSION['basket'])) {
      foreach ($_SESSION['basket']['products'] as $id => $prod_arr) {
 
        if ( $prod_arr['count'] < 1) {
          continue;
        }
 
        $t = $template;
 
        $t = str_replace('{product_id}',    $prod_arr['id'], $t);
        $t = str_replace('{product_name}',  $prod_arr['name'], $t);
        $t = str_replace('{price}',         $prod_arr['price'] * $prod_arr['count'], $t);
        $t = str_replace('{count}',         $prod_arr['count'], $t);
        $t = str_replace('{img_path}',      $prod_arr['basket_img'], $t);
 
        $html .= $t;
 
      }
    }
 
    self::$response = $html;
 
  }
 
  static function get_product() {
 
    if (isset($_SESSION['basket'])) {
 
      //print_r($_SESSION['basket']['products']);
      $sum = 0;
      $cnt = 0;
      foreach (  $_SESSION['basket']['products'] as $id => $prod_arr ) {
        if ($prod_arr['count'] < 1) {
          continue;
        }
        //print_r($prod_arr);
        $sum = $sum + $prod_arr['price'] * $prod_arr['count'];
        $cnt++;
      }
 
      if ($sum == 0) {
        self::$response = '0;0;';
      } else {
        self::$product = $_SESSION['basket']['products'][ $_SESSION['basket']['last_id'] ];
        //self::$response =  count($_SESSION['basket']['products']) . ';' . $sum . ';' . self::$product['name'] . '(' . $_SESSION['basket']['products'][self::$product['id']]['count'] . ')';
        self::$response =  $cnt . ';' . $sum . ';' . self::$product['name'] . '(' . $_SESSION['basket']['products'][self::$product['id']]['count'] . ')';
      }
    }
 
 
  }
 
  static function complete() {
    DB::close();
 
    switch (self::$error) {
      case 0:
 
        switch (self::$process) {
          case -1:
            header('Location: /');
          case 0:
            break;
          case 1:
            break;
          case 2:
            if (!isset($_SESSION['basket'])) {
              $_SESSION['basket'] = array('last_id', 'products');
            }
            $_SESSION['basket']['products'][self::$product['id']] = self::$product;
            $_SESSION['basket']['last_id'] = self::$product['id'];
            self::$response = self::$do;
            break;
        }
 
        break;
      case 1:
        //в базе продукт не найден
        break;
      case 2:
        //количество продукта == 0
        break;
      case 3:
        //не верные параметры запроса
        break;
    }
 
    echo self::$response;
    exit;
 
  }
 
 
 
  static function add_remove_product() {
 
    $product_id = (int)(isset($_GET['shop_id']) ? $_GET['shop_id'] : 0);
    self::$count = (int)(isset($_GET['count']) ? $_GET['count'] : -1);
 
    if ($product_id == 0 || self::$count == -1) {
 
      self::$error = 3;
 
    } else {
 
 
      if ( isset($_SESSION['basket']['products'][$product_id]) ) {
 
        if (self::$count == 1 || self::$count > $_SESSION['basket']['products'][$product_id]['count']) {
          $dir = 1;
        } elseif (self::$count < $_SESSION['basket']['products'][$product_id]['count']) {
          $dir = -1;
        } else {
          $dir = 1;
        }
 
        if ($dir == 1) {
          self::$do = 'update';
        } else {
          self::$do = 'delete';
        }
 
        $_SESSION['basket']['products'][$product_id]['count'] = $_SESSION['basket']['products'][$product_id]['count'] + $dir;
        self::$product = $_SESSION['basket']['products'][$product_id];
 
 
        if ($_SESSION['basket']['products'][$product_id]['count'] < 1) {
          unset($_SESSION['basket']['products'][$product_id]);
        }
 
      } else {
 
        $sql = "
          select * from products where id = " . $product_id. "
        ";
 
        $q = DB::query( $sql );
 
        if (!($row = DB::get_row($q))) {
          self::$error = 1;
          exit;
        }
 
        if ($row['count'] < 1) {
          self::$error = 2;
          exit;
        }
 
        self::$product = $row;
        if (strlen(self::$product['name']) > 41) {
          self::$product['name'] = substr(self::$product['name'], 0, 40) . '..';
        }
        self::$do = 'new';
 
      }
 
    }
 
  }
 
 
}
Как недавно выяснилось, это копия вот этого: http://dev.thelandpage.ru/body/ - там при добавлении нового товара в атрибут value значение добавляется, а не меняется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.05.2016, 18:08
Помогаю со студенческими работами здесь

Данные на сервер передаются, но PHP не понимает что пришел именно файл..
Нужно: передать файл (картинка.жпг) на сервер методом POST (принимает индекс.пхп) Делаю: HINTERNET m_hInternet; HINTERNET...

Не передаются данные в БД!
Приветствую! Я пока еще зеленый и нуждаюсь в Вашей помощи. При попытке отправить данные в таблицу БД ничего не происходит, в чем...

Данные не верно передаются
в вузе дали задание - написать на html и php типа БД. вроде сделал что-то, но при заполнении столкнулся с проблемой - сохраняется в итоге...

Не передаются данные в класс
в Unit4 такие строки value:=strtofloat(Copy(Memo1.lines, 3, length(tmp))); end; if tmp='x' then begin ...

Не передаются данные из формы
Такая проблема: есть html-файл с формой, и есть обработчик php-файл, в котором введенные на форму пользовательские данные записываются в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru