Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][JavaScript] Jeden przycisk, wysłanie dwóch formularzy
in5ane
post 10.01.2013, 15:08:47
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Witam, czy jest możliwość wcisnąć jeden submit w jednym formularzu, a zostaną wysłane dwa różne formularze?

Dajmy na to mamy coś takiego:
  1. <form action="#">
  2. <inputy srutyty....
  3. <input type="submit" name="send" />
  4. </form>
  5.  
  6. <form action="#">
  7. <select, <input bla bla bla....
  8. </form>


Czy jest możliwość, gdy kliknę pierwszy submit, aby wysłało mi oba formularze?
Ogólnie chodzi o to, żeby do skryptu wysyłało mi dane z obu formularzy, ale niestety pomiędzy tymi dwoma formularzami jest spora część strona, na której są inne formularze (np. logowania). Proszę o pomoc.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
nospor
post 10.01.2013, 15:11:59
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Nie, nie jest to możliwe
2) Masz dziwną strukturę strony, skoro dane z jednego forma musisz robijać na dwa formy
3) Jesli opierasz działanie strony na js, to po wcisnieciu submit pobierz dane z forma2, przypisz je do odpowiednich ukrytych pól w form1, a potem dopiero wyślij form1.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
in5ane
post 10.01.2013, 16:29:47
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Po prostu w logo mam inputa z treścią. A dalej na stronie w panelu bocznym mam selecta. I chodzi o to, że jak ktoś sobie np. zaznaczy województwo mazowieckie i wpisz sobie w inpucie tam koło logo i kliknie szukaj, to żeby brało mu też pod uwagę z tego selecta. A po prostu w kodzie pomiędzy tymi formularzami jest jeszcze formularz logowania.

Troszeczkę nie rozumiem tego pobrania przez JS.
Dajmy na to:
  1. <input type="submit" value="szukaj" onclick="getOtherInfo();" />

I do tego funkcja JS:
[JAVASCRIPT] pobierz, plaintext
  1. getOtherInfo() {
  2. // i tutaj np. coś takiego?
  3. var state = form['state'].value; // <-- to jest zmienna z drugiego formularza
  4. //i powiedzmy to już mam te zmienna z tego drugiego formularza i co dalej, żeby przesłać zmienne z tego pierwszego i te pobraną z tego drugiego?
  5. }
[JAVASCRIPT] pobierz, plaintext


Ten post edytował in5ane 10.01.2013, 16:30:44


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
b4rt3kk
post 10.01.2013, 16:36:09
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Tak po prawdzie to myślę, że nawet wysłanie formularza nie jest konieczne. Wszystkie wartości pól możesz pobrać za pomocą JS i przesłać je dalej do kolejnej podstrony, która odpowiada za wyszukiwanie.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
in5ane
post 10.01.2013, 16:45:46
Post #5





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Proponujesz by zrobić, że wciśnięcie Submita po prostu żeby tylko uruchomiło funkcję JS, która pobierze wszystkie dane i już z tej funkcji po prostu zrobić przekierowanie z pobranymi danymi do skryptu?


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
b4rt3kk
post 10.01.2013, 18:19:59
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(in5ane @ 10.01.2013, 16:45:46 ) *
Proponujesz by zrobić, że wciśnięcie Submita po prostu żeby tylko uruchomiło funkcję JS, która pobierze wszystkie dane i już z tej funkcji po prostu zrobić przekierowanie z pobranymi danymi do skryptu?


Sądzę, że tak będzie najlepiej.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
in5ane
post 10.01.2013, 21:20:35
Post #7





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


No to mam dalej pytania. Zrobiłem coś takiego:
[JAVASCRIPT] pobierz, plaintext
  1. function sendForm() {
  2. var form1 = document.getElementById('form1');
  3. var search = form1.search.value;
  4. var form2 = document.getElementById('form2');
  5. var categories = form2.categories.value;
  6. var state = form2.state.value;
  7. }
[JAVASCRIPT] pobierz, plaintext

Z tym, że jak próbuję pobierać categories i state to nie działa (samo search z pierwszego formularza działa). Myślę, że problem jest w tym, że i categories i state są multicheckboxami, tzn. np.:
  1. <input type="checkbox" name="state[]" value="1" class="checkbox_p" /> dolnośląskie<br />
  2. <input type="checkbox" name="state[]" value="2" class="checkbox_p" /> kujawsko-pomorskie<br />
  3. <input type="checkbox" name="state[]" value="3" class="checkbox_p" /> lubelskie<br />

Proszę powiedzcie mi, jak to rozgryźć.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
b4rt3kk
post 10.01.2013, 22:08:36
Post #8





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Taki przykład:

  1. var state = new Array();
  2.  
  3. $('.checkbox_p').each(function() {
  4. if ($(this).is(':checked') == true) [
  5. state[] = $(this).val();
  6. }
  7. });


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
in5ane
post 10.01.2013, 22:33:30
Post #9





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


A mam jeszcze jedno pytanie. Teraz tak po prostu coś sprawdzam. Chce sobie wysłać dane z checkbox'ów. No i jak wysyłam i odbieram je w kontrolerze, to mam cały czas:
Kod
array (size=1)
  0 => string 'undefined' (length=9)

Mój kod w kontrolerze to po prostu:
  1. var_dump($this->input->post('state'));

Co jest nie tak? Kombinuje i krew zalewa...

Dodam, że jakby było w input checkbox name: state1, state2, state3 itd... to by mi działało, ale ja chce to jako tablice przesłać. Jak później będę miał filtrować dane z bazy?


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
b4rt3kk
post 10.01.2013, 22:33:46
Post #10





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Nie podałeś w jaki sposób je wysyłasz?


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
in5ane
post 10.01.2013, 23:04:08
Post #11





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Jak to nie podawałem? Nie rozumiem? No w jaki? Postem normalnie, o to pytasz?

Odstawmy teraz to JavaScript na bok.
Pytam o samo przesyłanie danych z checkbox'ów.


--------------------
> > > Tworzenie stron < < <
Go to the top of the page
+Quote Post
b4rt3kk
post 10.01.2013, 23:06:46
Post #12





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Tak, o to. Ale oczywiście owe checkboxy są zaznaczone? Wiesz na pewno o tym, że niezaznaczony checkbox nie tylko nie przesyła wartości, ale i nie tworzy zmiennej POST?


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
in5ane
post 10.01.2013, 23:47:33
Post #13





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

Ostrzeżenie: (10%)
X----


Mam tych checkbox'ów state 16:
  1. <input type="checkbox" name="state[]" value="1" />
  2. <input type="checkbox" name="state[]" value="2" />
itd... do 16
Poza tym mam pole:
  1. <input type="text" name="search" />

I teraz w kontrolerze daję:
  1. echo $this->input->post('search'); // to działa
  2. echo $this->input->post('state'); // to nie działa (jest napis: array)

A gdy daję
  1. var_dump($this->input->post('state');
to dostaję (w zależności ile zaznaczę checkbox'ów):
Kod
array (size=1)
  0 => string 'undefined' (length=9)



@edit:

K******rwa... patrzcie! Oczy mi wyszły na wierzch.
Czy to mógł być problem, że było coś takiego?
  1. onclick="this.value=check2('state_all')"

Problem w tym, że muszę mieć tego onclicka, ale z nim nie działa, a bez niego działa.

Ten post edytował in5ane 10.01.2013, 23:51:46


--------------------
> > > Tworzenie stron < < <
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: 24.07.2025 - 16:47