![]() |
![]() ![]() |
![]() |
-poi- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Szukałem na google ale nie znalazłem rozwiązania - a może źle szukalem. Mam stronę dodaj.php Która ma odczytać kod kreskowy za pomocą skanera. I chciałbym żeby zaraz po odczycie wartość została podstawiona do zmiannej $kod oraz wywołało funkcje dodaj w która uruchamia zapytanie (dodanie wiersza do bazy) Mam nadzieje że nie namieszałem i zrozumiecie. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Trzeba skaner skonfigurować, by wciskał na koncu enter. Zazwyczaj trzeba w drugą stronę konfigurować...
|
|
|
-Gość- |
![]()
Post
#3
|
Goście ![]() |
a to mnie zaskoczyłeś
musze pogoogolowac ten temat chyba że ktoś umie bez tego to obejść a jak wywołać potem funkcje?? |
|
|
-Gość- |
![]()
Post
#4
|
Goście ![]() |
jednak to rozwiazanie odpana ponieważ to ma działać na paru stacjach a nie wiem jakie tam bedą czytniki .. ma być dla laika
wiec poszukuje rozwiazania innego |
|
|
-poi- |
![]()
Post
#5
|
Goście ![]() |
mam pole input w którym mam ustawiony fokus.
PO odczytaniu kodu z czytnika chciałbym aby zdarzenie (tak mi się wydaje) onchange spowodowalo wywolanie funkcji która doda mi ten kod do bazy danych. Niestety nie mogę bawić się w konfigurowanie czytnika ponieważ to ma działac na 10-15 innych komputerach gdzie nie wiem jakie będą czytniki ![]() Męczę się z tym już tydzień a blokuje mnie to żeby dalej robić. BARDZO PROSZE O POMOC |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Taki oto pojedynczy plik który wysyła formularz sam do siebie. Jeżeli przesłano zmienną kod przez GET to ją wyświetla, dalej funkcja wywoływana co sekundę która sprawdza czy zmieniła się zawartość pola input w formularzu względem wcześniej zdefiniowanego pustego stringa "". Jeżeli zauważy zmianę - formularz automatycznie się wysyła i kółko się zamyka. Można oczywiście dopasować pod siebie, przesłać na inną stronę a tam poddać dane obróbce, zapisać do bazy itd. Częstość sprawdzania pola (interwał) można oczywiście zmienić, jeżeli kod jest zczytywany to nie ma problemu wartość może być niska, niekoniecznie 1000. Dodanie do <input ... disabled /> zablokuje przypadkowe wpisanie czegokolwiek z klawiatury a co za tym idzie przypadkowe wysłanie wstukanej wartości do dalszej obróbki.
|
|
|
-poi- |
![]()
Post
#7
|
Goście ![]() |
Geston super prawie wszystko tak jak chciałem,
Ale mam pytanko dla Ciebie pewnie pestka dla mnie nie bo nie bawię się tym na codzień. odpalam stronę nic nie wpisuje , widze że stronka się przeładowuje co 1s. Dodaje mi do adresu strony ?kod= a tego bym nie chciał dopiero jak się zczyta kod to chciałbym aby dopisało się ?f=dodaj&kod=tutajzaczytanykod Bo rozumiem że nie da się tak zrobić żeby stronka się przeładowało dopiero po skanie z czytnika a nie tak jak teraz non stop ? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Strona się nie odświeża do póki nic nie zostanie wpisane. Pozostaje statyczna bez żadnych argumentów na pasku adresu.
Dopiero kiedy wpiszesz cokolwiek, albo inaczej zczytasz bo sprawdzanie odbywa się na tyle szybko że ręcznie nic sensownego nie wpiszesz, następuje nie tyle odświeżenie strony co zwykłe wysłanie formularza (potestuj z ctrl+v - wklejając jakiś tekst). Żeby nie było widać tych argumentów w pasku adresu wystarczy zmienić metodę wysyłania na POST i odbierać dane z tablicy $_POST. Ten post edytował Geston 10.04.2014, 13:33:14 |
|
|
-Gość- |
![]()
Post
#9
|
Goście ![]() |
no ale tak robi ale domyślam się dlatego że dałem autofocus - da się to ominąc żeby był focus a nie ładowało siębez odczytu kodu ?
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
A musisz mieć autofocus żeby władowało do tego akurat inputa? Nie ładuje Ci po atrybucie name inputa? Jeżeli tak to dodałbym zamiast autofocus bardziej disabled żeby właśnie w inputa nie dało się nic wpisać z klawiatury przez co będziesz mieć gwarancję że przez przypadek niczego nie wklepiesz z klawiatury i nie poddasz obróbce niepotrzebnych danych.
|
|
|
-poi- |
![]()
Post
#11
|
Goście ![]() |
TEraz mam taki kod :
po załadowaniu strony klucz.php po 1sek strona zmiania adres na klucz.php?kod= i odswieza sie po wyłączeniu autofokusa żeby zeskanowac kod musze kliknąc na pole myszka. Jeżeli nie zrobie tego w jedna sekunde to kursor znika i nie da się zaczytac kodu. Idealnym rozwiązaniem jest tak po przejsciu do strony nie zmienia się adres strony na klucz.php?kod= włącza się kursor na polu gdzie się będzie skanować (autofocus) po zeskanowaniu się kodu przenosi się do strrony klucz.php?f=dodaj&kod=tutaj kod kreskowy (dzieje się tak po zeskanowaniu kodu, w przykładzie Gestona można w ciągu sekundy wykonac nawet 3 skany kodu wtedy nie uda mi się go przypasowac do wzorca z bazy danych CZy ktoś jest w stanie zrobić poprawkę do tego kodu |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze
Tutaj zgubiłeś coś. Po drugie, zmień interval na 100 jak chcesz uniknąć kilku zczytań w tej sekundzie. Kod kreskowy ma chyba zawsze tę samą długość, ogranicz więc input atrybutem maxlength i więcej znaków nie przyjmie. @edycja że tak dodam... Jeżeli naprawdę masz:
a nie jak podałem:
To się nie dziwię że działa źle... Warunek zawsze jest spełniany, przepisz dokładnie co Ci wysłałem to będzie działać dobrze... Ten post edytował Geston 10.04.2014, 20:51:08 |
|
|
--fenster-- |
![]()
Post
#13
|
Goście ![]() |
masz racje dodałem to spowrotem nawet wrzuciłem focus i działa bez problemu.
Ostatnie pytanko i problem moj bedzie rozwiązany Jak ustawiłem czas 100 to zdarza się że kod się nie zaczyta cały. Zbyt mały czas. Przy 1000 zdarzyło się to może z 1 raz na 100 Czy jest opcja żeby on po zaczytaniu kodu + 1sec dopiero wysłał formularz lub jakiś inny pomysł Bo w wersji obecnej spełnia to 90% tego co potrzebowałem za CO BARDZO DZIĘKUJE |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Skoro zdarza się to raz na 100 to odczytane dane poddawałbym po prostu walidacji, jeżeli byłyby poprawne (odpowiednia ilość odczytanych znaków) to dopiero obrabiałbym dane, jeżeli dane byłyby nieprawidłowe - komunikat bez obróbki danych, input cały czas aktywny i skrypt będzie czekał na kolejne odczytanie kodu.
Kod kreskowy zawsze składa się z takiej samej ilości cyfr i tylko cyfr? |
|
|
-Gość- |
![]()
Post
#15
|
Goście ![]() |
kod może zawierać i cyfry i znaki różnej długości.
a da się zrobic tak aby ta funkcja setInterval(checkInput, 1000); odpalała się dopiero po zdarzeniu onchange? |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Nie może bo nie używamy onchange bo onchange wymaga wciśnięcia enter lub kliknięcia myszą gdzieś poza inputem.
Jakbyś podał mi dokładnie jakie znaki mogą pojawić się w kodzie kreskowym (na pewno nie same cyfry?) w sensie czy cyfry, czy cyfry i litery, jak litery to tylko małe czy też małe i duże albo tylko duże? Ile tych znaków się pojawia? 20? 24? Zawsze tyle samo czy w przedziale od 10 do 30 lub innym (jakim?). To podpowiem co dalej bo rozwiązanie jest już proste. Jeżeli jest to kod EAN-13 to można całkiem to ogarnąć już żeby działało ze 100% skutecznością. Ten post edytował Geston 11.04.2014, 12:27:35 |
|
|
-Gość- |
![]()
Post
#17
|
Goście ![]() |
GESTON dzięki za wytrzymałość.
ZNaki mogą byc różne cyfry łączone z literami a długość też może byc różna - na to ja nie mam wpływu |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
To skąd Ty te kody masz... właściwie we wszystkim teraz stosuje się EAN-13 złożony z samych cyfr gdzie ostatnia cyfra jest cyfrą kontrolną i dzięki temu można dorzucić wyrażenie regularne i do niego porównać odczytany kod dzięki czemu nie tylko sprawdzisz odczytanie kodu ale też poprawność tego co odczytałeś. No ale jak to nie jakiś konkretny system kodów paskowych... Poszukaj jego oznaczenia, to może ułatwić sprawę.
@edycja no może nie we wszystkim, EAN-13 to kod trafiający do rejestru właściwie ogólnoświatowego, do celów prywatnych (ewidencja, inwentaryzacja) używa się pewnie czegoś innego - ciekaw jestem czy system kodowania ma jakąś nazwę, oznaczenie, lub przynajmniej z ilu znaków conajmniej się składa, i czy pojawiają się tam tylko litery a-z, A-Z i cyfry 0-9 czy jeszcze jakieś znaki. Ten post edytował Geston 11.04.2014, 13:20:23 |
|
|
-Gość- |
![]()
Post
#19
|
Goście ![]() |
GASTON
kody bedą odczytywane a) z kodów kreskowych plomb kluczy ![]() c) wersja gorsza z kodów wygenerowanych samemu (np ktoś sobie wygeneruje kod K1 i przypisze go do jakiegos klucza) i to tez musi być dobrze odczytane |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 60 Pomógł: 9 Dołączył: 29.11.2010 Skąd: T Ostrzeżenie: (0%) ![]() ![]() |
Tak jak wyżej wspomniałem, one muszą być generowane z użyciem jakiegoś konkretnego algorytmu, który losuje znaki z pośród jakiejś konkretnej puli, liter małych a-z, dużych A-Z, cyfr 0-9, ma jakieś ograniczenia na pewno, że tycn znaków musi być np zawsze 10, albo przynajmniej 6 a maksymalnie 14 itd, spróbuj to ustalić.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.05.2025 - 07:45 |