Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML] Jak połączyć dwie wartości w jedną zmienną?
Mieeetek
post 1.06.2022, 12:26:35
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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= ?
Go to the top of the page
+Quote Post
zdun
post 1.06.2022, 12:56:13
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 29.03.2019

Ostrzeżenie: (0%)
-----


A moze napisz co chcesz osiagnac bo byc moze źle kombinujesz i da sie to inaczej zrobić
Go to the top of the page
+Quote Post
Mieeetek
post 1.06.2022, 13:08:51
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Mieeetek 1.06.2022, 13:09:48
Go to the top of the page
+Quote Post
zdun
post 1.06.2022, 16:41:32
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 29.03.2019

Ostrzeżenie: (0%)
-----


Ale mnie bardziej chodzi po co ci taki adres.
Go to the top of the page
+Quote Post
Mieeetek
post 1.06.2022, 18:34:34
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
trueblue
post 1.06.2022, 18:40:01
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Wartości tekstowe sklejasz w JS dokładnie tak jak podałeś na początku.
Pokaż jaki masz stworzony kod do sklejania.


--------------------
Go to the top of the page
+Quote Post
Mieeetek
post 1.06.2022, 20:51:39
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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);
Go to the top of the page
+Quote Post
trueblue
post 1.06.2022, 21:31:32
Post #8





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


https://jsfiddle.net/7x84wrmd/


--------------------
Go to the top of the page
+Quote Post
Mieeetek
post 1.06.2022, 22:34:23
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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....

Ten post edytował Mieeetek 1.06.2022, 22:42:03
Go to the top of the page
+Quote Post
trueblue
post 2.06.2022, 08:38:14
Post #10





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Pokaż swój obecny kod. W ten sposób możemy dyskutować w nieskończoność.


--------------------
Go to the top of the page
+Quote Post
Mieeetek
post 2.06.2022, 12:02:36
Post #11





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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.  


Go to the top of the page
+Quote Post
viking
post 2.06.2022, 12:23:55
Post #12





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Mieeetek
post 2.06.2022, 13:41:46
Post #13





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
trueblue
post 2.06.2022, 13:49:15
Post #14





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
Mieeetek
post 2.06.2022, 13:50:51
Post #15





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.11.2016

Ostrzeżenie: (0%)
-----


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

Ten post edytował Mieeetek 2.06.2022, 13:54:18
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 01:21