Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 14
1

Как сделать так, чтобы при вводе штрих - кода автоматически во второе поле писалось название товара

08.01.2014, 13:40. Показов 1935. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Не могу реализовать следующее:

Имеется БД с таблицей:
sh_kod - сюда заносится штрих-код
tmc - сюда заносится название товара

На сайте есть 2 поля: штрих-код и наименование товара.

Как сделать так, чтобы при вводе штрих-кода автоматически во второе поле писалось бы название товара, при этом страница не перезагружалась бы?

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2014, 13:40
Ответы с готовыми решениями:

Как сделать так чтобы при вводе в Edit1, данные автоматически писались в Edit2?
Добрый день, программисты!!! На форме есть Edit1, Edit2. Как сделать так чтобы при вводе в Edit1,...

Как сделать так, чтобы при вводе данных в одной таблице, они вводились автоматически во второй?
У меня есть две таблицы в SQL Заявки и Материалы. В Материалах есть поля код материала,...

Как сделать так чтобы поле цена указывалась автоматически???
Уважаемые форумчане! Помогите пожалуйста, 4 года мучился, и с час вновь мучаюсь с этой...

Как сделать чтобы при выборе № товара , его цена подставлялась автоматически
Здравствуйте , я работаю в Acees 2007-2010 . Подскажите пожалуйста как мне сделать так,чтобы...

9
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
08.01.2014, 14:11 2
vityus, используйте AJAX. В библиотеке jQuery есть готовые функции для реализации AJAX запросов. Действия следующие:
AJAX отправляет штрих-код php скрипту->PHP скрипт получает штрих-код и ищет его в БД (если он есть - отправляем название товара)->JS скрипт получает ответ от сервера и заносит этот ответ в необходимое поле
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 14
08.01.2014, 19:18  [ТС] 3
Я только начинаю изучение php, поэтому не знаю, где брать эти библиотеки. Обычно копировал готовый скрипт и все работало. А вот эту функцию никак не могу отыскать в инете
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
08.01.2014, 20:28 4
Цитата Сообщение от vityus Посмотреть сообщение
не знаю, где брать эти библиотеки
Вот официальный сайт jquery: http://jquery.com/. Документация: http://jquery-docs.ru/‎. Там должен быть раздел ajax

Добавлено через 1 минуту
А готовое вы не найдёте, придётся доделывать всё равно.
1
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 14
09.01.2014, 03:19  [ТС] 5
как там все сложно ((
может кто поможет конкретно? плиз
для наглядности сделал картинку: нужно, чтобы при вводе штрих-кода остальные поля сами сразу бы заполнялись.
Как сделать так, чтобы при вводе штрих - кода автоматически во второе поле писалось название товара
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
09.01.2014, 08:46 6
vityus, в штрих-коде фиксированное количество цифр? Или когда как?
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 14
09.01.2014, 08:47  [ТС] 7
Да когда как, товар ведь разный
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
09.01.2014, 10:22 8
В файл, где форма добавьте в тег head:
HTML5
1
2
<script type="text/javascript" src="путь к библиотеке jquery.js"></script>
<script type="text/javascript" src="путь к файлу ajax.js"></script>
В файл ajax.js добавьте:
Кликните здесь для просмотра всего текста
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
// Функция сработает при успешном запросе
function success(data){
    // Заносим название в поле
    $("#name_product").val(data['name_product']);
    
    // И так далее, по ID полей заносите данные
}
 
// Функция сработает при ошибке
function error (xhr,error){
    // Массив ошибок
    errors = {
                'timeout':'Истекло время запроса к серверу',
                'parsererror': 'Неверный ответ от сервера'
             };
    
    // Если ошибка не равна "abort"
    if( error !== 'abort' )
        // Выводим ошибку
        alert( errors[error] );
}
 
// Когда весь документ загружен
$(document).ready(function(){
    // При нажатии на кнопки в input
    $("#bar_code").keyup(function(){
        // Если был до этого запрос 
        if( typeof ajax !=="undefined" )
            // Прерываем предыдущий запрос
            ajax.abort();
        
        // Получаем введённый штрихкод
        bar_code = $("#bar_code").val();
        
        // Выполняем AJAX запрос
        ajax = $.ajax({
            url: 'путь к файлу getdata.php', // Адрес запроса
            type: 'POST', // Метод запроса (GET или POST)
            data: {'bar_code':bar_code}, // Отправляемые данные
            timeout: 10000, // Время ожидания ответа от сервера (в миллисекундах)
            dataType: 'json', // Сервер должен возвратить данные в формате JSON
            error: error, // При неудаче вызовется функция error
            success: success // При успехе вызовется функция success
        });
    });
});

Только путь к файлу getdata.php пропишите в url на 37 строке.

Создайте файл getdata.php, там получайте таким образом штрих-код:
PHP
1
$bar_code = isset( $_POST['bar_code'] ) ? (int) $_POST['bar_code'] : 0;
Потом по этому штрих-коду вытягивайте данные из БД и формируйте такой массив:
PHP
1
2
3
4
5
$data = array(
                      'name_product' => 'тут полученное из БД название продукта'
 
                      // и т.д. через запятую
                  );
И отдавайте этот массив в формате JSON:
PHP
1
echo json_encode( $data );
Начиная с пятой строки в JS коде добавляйте данные в поля по аналогии добавления в поле "Название".
У полей соответственно должны быть ID, например, в моём коде поле "Название" имеет ID "name_product", имя идёт после решётки тут:
PHP
1
$("#name_product").val(data['name_product']);
Вот так выглядит html код поля:
HTML5
1
<input type="text" id="name_product" />
Полю "Штрих-код" также задайте ID bar_code.
1
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 14
09.01.2014, 11:03  [ТС] 9
спасибо. буду пробовать
0
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 14
27.01.2014, 18:11  [ТС] 10
что-то ничего не получается
0
27.01.2014, 18:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2014, 18:11
Помогаю со студенческими работами здесь

Как сделать, чтобы при вводе через форму автоматически проставлялась системная дата?
Подскажите,пож-ста,как можно сделать так,чтобы призаполнении таблицы через форму автоматически в...

Как сделать, чтобы в форме при заполнении первого поля автоматически заполнялось второе тем же значением
Здравствуйте! имеется форма, необходимо, чтобы при вводе значения в первое поле автоматически...

как сделать, чтобы при выборе Товара с помощью выпадающего списка, в поле Цена вставлялась цена этого товара?
Всем доброго времени суток. Изучаю БД.Учусь в акцесе 2003. Тут такой вопрос возник:А можно ли в...

Как в Документе.ТЧ сделать чтобы при выборе в ячейке Товара , его Цена подставлялась автоматически
Подскажите пожалуйста как именно будет выглядеть код в ПриИзменении


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

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