Mieeetek
1.06.2022, 12:26:35
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= ?
A moze napisz co chcesz osiagnac bo byc moze źle kombinujesz i da sie to inaczej zrobić
Mieeetek
1.06.2022, 13:08:51
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.
Ale mnie bardziej chodzi po co ci taki adres.
Mieeetek
1.06.2022, 18:34:34
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
1.06.2022, 18:40:01
Wartości tekstowe sklejasz w JS dokładnie tak jak podałeś na początku.
Pokaż jaki masz stworzony kod do sklejania.
Mieeetek
1.06.2022, 20:51:39
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
1.06.2022, 21:31:32
Mieeetek
1.06.2022, 22:34:23
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
2.06.2022, 08:38:14
Pokaż swój obecny kod. W ten sposób możemy dyskutować w nieskończoność.
Mieeetek
2.06.2022, 12:02:36
proszę - obecnie jest tak - przy czym to jest jedna z wielu różnych prób
<script type="text/javascript"> <!--
var form = document.getElementById('form');
form.addEventListener('submit', function(e) {
e.preventDefault();
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
alert(href);
window.open(href,"_blank");
});
//-->
<input name="va" type="hidden" value="https://polona.pl/search/?query="> Nazwisko:
<input name="vb" type="text" size="80" value=""><br> Zakres dat:
<input name="vc" type="hidden" value="&filters=dateRange:"> <input name="vd" type="text" size="35" value=""> do
<input name="ve" type="hidden" value=".01.01--"> <input name="vf" type="text" size="35" value=""> <input name="vg" type="hidden" value=".01.01,public:1,hasTextContent:0date%20asc&highlight=1">
viking
2.06.2022, 12:23:55
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
2.06.2022, 13:41:46
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
2.06.2022, 13:49:15
Jest w <head>, ale w momencie uruchamiania zawartość <body> nie jest załadowania (czyli nie ma dostępu do formularza).
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
2.06.2022, 13:50:51
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.