Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Jak połączyć dwie wartości w jedną zmienną?
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
Mieeetek
Przepraszam, szukałem ale nawet na angielskich stronach niczego nie ma, a podejrzewam że to jakaś bardzo prosta sprawa

Chcę zrobić formularz na stronie z jedną zmienną ale dwoma wartościami

czyli żeby formularz przechodził do adresu - index.php?value=aaabbb

ale żeby w formularzu do wprowadzenia były dwa osobne okienka dla aaa i bbb

Czyli żeby formularz połączył wartości z dwóch okienek do jednej zmiennej.

Mogę prosić o pomoc? Próbowałem już łączenia w skrypcie JS i też nie wychodzi. A może da się to zrobić jakąś metodą w nazwie zmiennej - coś jak value= ... +value= ?
zdun
A moze napisz co chcesz osiagnac bo byc moze źle kombinujesz i da sie to inaczej zrobić
Mieeetek
Potrzebuję mieć 2 okienka do wprowadzenia dwóch wartości "aaa" i "bbb"

a w efekcie po kliknięciu przejść do strony o adresie

index.php?value=aaabbb

Niestety nie mam wpływu na ten adres - musi być taki. (nie może być np. index.php?valueA=aaa&valueB=bbb )
Tak dokładnie to potrzebuję żeby adres był nieco dłuższy ale miał trzy wartości ukryte - jak będę mieć metodę to już to ogarnę.

coś jak
index.php?value=UKRYTE1aaaUKRYTE2bbbUKRYTE3

wartości aaa i bbb mogą być różne - wartości ukryte są stałe.
zdun
Ale mnie bardziej chodzi po co ci taki adres.
Mieeetek
A jakie to ma znaczenie?

Adres jest zewnętrzny. Niezależny od mnie. Wyszukiwarka.

Problem polega na tym że aby dojść do adresu ?value=aaabbbcccdddeeefffggg trzeba przejść kilka niepotrzebnych kroków - podczas gdy można to zrobić od razu wklejając adres. (niczego się tu nie omija - po prostu tak kiepsko zrobiona wyszukiwarka). części aaa ccc eee ggg - są stałe, części bbb ddd fff są zmienne.

Dla ułatwienia chciałem zrobić sobie stronkę gdzie sobie wpisuję zmienne i łączę w adres

problem w tym że adres nie ma 5 zmiennych, tylko jedną składaną. Więc nie mogę wysłać formularza z 5 inputami

oczywiście mogę zrobić okienko gdzie sobie podmieniam ciągi bbb ddd fff ręcznie - ale elegancko byłoby aby były odpowiednie okienka do zmiennych fraz.

Zresztą jakie to ma znaczenie. Ciąg adresu jest zadany - nie mogę go zmienić, nie mam na to wpływu.

Chcę rozwiązać problem, bo może się też przydać w innych przypadkach.
trueblue
Wartości tekstowe sklejasz w JS dokładnie tak jak podałeś na początku.
Pokaż jaki masz stworzony kod do sklejania.
Mieeetek
Próbowałem paru metod.
Jeśli chodzi o JS to robiłem tak:

w form dawałem

<input type="hidden" name="va" value="aaa">
<input type="text" name="vb" value="">
<input type="submit" value="Submit" onClick="combine(this.form);">



i HEAD

function combine(form) {
form.v.value = form.va.value + " " + form.ab.value;
}

Trochę skróciłem ten kod, bo tych zmiennych jest kilka, a ja pokazuje w skrócie 2.

============
Próbowałem też konstrukcji typu
<input type="hidden" name="v[]" value="aaa">
<input type="text" name="v[]" value="">

ta powodowało, że w adresie były obie wartości - tzn pojawiało się v[]=aaa&v[]=bbbb


============
próbowałem też najpierw składać jedną zmienną $v w php a następnie tę zmienną wkleić do
window.open($v);
trueblue
https://jsfiddle.net/7x84wrmd/
Mieeetek
Dzięki - ale nie wiem dlaczego to u mnie nie działa.
Dla uproszczenia cały potrzebny adres podzieliłem na inputy - va ... vb ... vc....
gdzie va to jest https://innastrona.pl/?v=
vb - bbb
vc - cccc
....

strona która się otwiera ma mniej więcej adres

mojastrona.pl/va=https%3A%2F%2Finnastrona.pl%2F?v=&vb=bbb&vc=ccc&vd=ddd .... itd.

a powinno być

innastrona.pl/v=aaabbbccc....
trueblue
Pokaż swój obecny kod. W ten sposób możemy dyskutować w nieskończoność.
Mieeetek
proszę - obecnie jest tak - przy czym to jest jedna z wielu różnych prób

  1.  
  2. <script type="text/javascript">
  3. <!--
  4.  
  5. var form = document.getElementById('form');
  6. form.addEventListener('submit', function(e) {
  7. e.preventDefault();
  8.  
  9. var href = document.getElementById("va").value + document.getElementById("vb").value + document.getElementById("vc").value + document.getElementById("vd").value + document.getElementById("ve").value + document.getElementById("vf").value + document.getElementById("vg").value
  10.  
  11. alert(href);
  12. window.open(href,"_blank");
  13. });
  14.  
  15. //-->
  16.  
  17.  
  18. </head>
  19.  
  20. <form id="form">
  21. <input name="va" type="hidden" value="https://polona.pl/search/?query=">
  22. Nazwisko:
  23. <input name="vb" type="text" size="80" value=""><br>
  24. Zakres dat:
  25. <input name="vc" type="hidden" value="&filters=dateRange:">
  26. <input name="vd" type="text" size="35" value="">
  27. do
  28. <input name="ve" type="hidden" value=".01.01--">
  29. <input name="vf" type="text" size="35" value="">
  30. <input name="vg" type="hidden" value=".01.01,public:1,hasTextContent:0date%20asc&highlight=1">
  31.  
  32.  
  33. <br> <button type="submit"> szukaj </button>
  34. </form>
  35.  


viking
Skrypt jest przed kodem html kiedy jeszcze nie wie nic o elementach. Oraz elementy forma do których się odwołujesz nie mają żadnych id.
https://developer.mozilla.org/en-US/docs/We...entLoaded_event
Mieeetek
skrypt jest HEAD
niezależnie zresztą od umieszczenia na stronie efekt jest taki sam
- inputy mają "name", gdy zamienia się to na id - wtedy wogóle nie działa

ten skrypt POBIERA dane - ale ich nie łączy
trueblue
Jest w <head>, ale w momencie uruchamiania zawartość <body> nie jest załadowania (czyli nie ma dostępu do formularza).

  1. var href = form.va.value + form.vb.value + form.vc.value + form.vc.value + form.vd.value + form.ve.value + form.vf.value + form.vg.value;

P.S. Nie wiem dlaczego na siłę znów pchasz stałe ciągi do pól hidden.
Mieeetek
a mogę prosić po prostu o pomoc jak to poprawić?

EDIT: sorry - już zajarzyłem - prosty błąd - brak odwołania do funkcji
Działa!
Dzięki
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.