Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX][PHP] Automatyczne generowanie inputa na podstawie innego inputa.
Forum PHP.pl > Forum > Przedszkole
dezerter_af
Witam,

Mam pewien problem. Chcę stworzyć pewien generator. Problemem jest jego działanie.
Chodzi o to, że mam dwa inputy w pierwszy wpisuję nazwę i chcę aby w drugim generował się kod na podstawie nazwy. Kod na zasadzie a -> a1, b ->b2.

I problemem jest automatyczne wkładanie w drugiego inputa? Jak rozwiązać ten problem? Formularz jest w php jak i cała strona smile.gif
RiE
Jeżeli dobrze zrozumiałem to:
Wypadałoby, aby oba inputy miały id
W pierwszym input dajesz zdarzenie onChange(nazwa_funkcji)

W JS, umieszczasz
  1. function nazwa_funkcji()
  2. {
  3. var input = document.getElementById('id').value;
  4. document.getElementById('id').value = input;
  5. }
  6.  


Pomiędzy tymi wierszami, musisz jedynie dodać przedrostek czy co tam chcesz zmienić z tej wartości.
dezerter_af
No właśnie chyba nie bardzo. Formularz aktualnie działa w PHP. Każdy input ma swoje ID. Teraz wykonuję ręcznie operację nadawania "symbolu". Czyli mam dwa inputy w jednym wpisuje nazwę np ABC a w drugim sam na podstawie mojego klucza wpisuje a1b2c3. Klucz mam gotowy do każdej litery mam odpowiedni ciąg.

I chciałbym to zautomatyzować aby po wpisaniu samej nazwy, symbol był generowany automatycznie i pojawiał się w inpucie (Np. po naciśnięciu "generuj" albo coś podobnego:)

W php wiem mniej więcej jak to zrobić, na podstawie wyszukiwania znaków w nazwie i zamianie na symbol. Ale php jest po stronie serwera a to chyba trzeba zrobić po stronie przeglądarki.

@bump

Bardzo proszę o pomoc. Pewnie jest już gdzieś takie rozwiązanie ale nawet nie wiem jak zacząć tego szukać.

@bump

Czy może mi ktoś pomóc? Wiem, że podobne rozwiązanie jest np. w Cpanelu podczas generowania hasła do ftp.
bostaf
Bez AJAXu, to na przykład w taki sposób:
  1. <input type="text" id="nazwa" onKeyUp="symbole();">
  2. <input type="text" id="symbol" readonly="readonly">
  3. <script type="text/javascript">
  4. function symbole() {
  5. var tablica = [];
  6. tablica["ABC"] = "a1b2c3";
  7. tablica["qq"] = "symbol 2";
  8. tablica["foo"] = "symbol trzeci";
  9. nazwa = document.getElementById("nazwa");
  10. symbol = document.getElementById("symbol");
  11. symbol.value = tablica[nazwa.value] !== undefined ? tablica[nazwa.value] : "";
  12. }

Sprawdź i dostosuj do własnych potrzeb.
Petre
czy te cyfry mają być kolejne czy np: 1 przypisany do A , 2 do B ?
co przez to rozumiem wariant I:
b1e2a3
czy
b2e5a1 ?
Jeżeli przypadek I to rozbiłbym stringa na kolejne znaki i po kazdym wstawial kolejna liczbe. Potem wstawil jak juz koledzy podawali do value danego inputa.
dezerter_af
Klucz wygląda tak:

a1
b2
c3
d4
b5
e6

I symbole są różne, czyli np. symbol to dba wtedy koduje na d4b2a1 jeżeli symbol to eab to koduje na e6a1b2
W php nie ma problemu z rozbiciem na znaki i dla każdego znaku przyporządkowanie klucza. \
Tylko chodzi o ten nieszczęsny input aby on się generował i pokazywał :D

@bump

@bump!
IProSoft
Do rozwiązania @bostaf musisz tylko dodać podział na litery i dla każdej generować kod:
  1. var symbol = 'eab'; //lub zczytujesz z input $("#nazwa").val();
  2. var n = str.split("");
  3. //w n otrzymasz tablicę z każdym znakiem i wtedy np w pętli przypisujesz odpowiedni kod.


Inne rozwiązanie do przykładu @bostaf:

  1. var symbol = 'eab'; //lub zczytujesz z input $("nazwa").val();
  2. $.get("/generowanieinput.php?symbol="+symbol, {}, function(data){
  3. $("#nazwa").after(data);
  4. });


w pliku generowanieinput.php tworzysz input na podstawie zapytania $_GET



To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.