Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Pomoc w wysłaniu danych, czyli dlaczego <button type=submit> nie wysyla danych ?
Tomplus
post
Post #1





Grupa: Zarejestrowani
Postów: 1 884
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


Witam,

Mam taki prosty kod jQuery
  1. $(document).ready( function(){
  2. $('#ZapiszDane').submit(function() {
  3. $.post('zapiszdane.php', $('#ZapiszDane').serialize() , function(data) {
  4. alert(data);
  5. });
  6. return false;
  7. });
  8. })

oraz formularz też wyjątkowo prosty:

  1. <form id='ZapiszDane' action='zapiszdane.php' method='post'>
  2. <button type='submit' name='par' value='1416'>Wyslij</button>
  3. <input type='radio' id='radio1_1416' name='r1[1416]' checked><label for='radio1_1416'></label>
  4. <input type='radio' id='radio2_1416' name='r2[1416]'><label for='radio2_1416'></label>
  5. <input type='radio' id='radio3_1416' name='r3[1416]'><label for='radio3_1416'></label>
  6. </form>


Nie wiem czego nie dodaje, ale nie potrafię uzyskać danych name and value z guzika BUTTON.

Gdy wysyłam bez kodu JS, to mam wszystkie dane czyli $_POST['par'] oraz $_POST['r'.$i] i jestem zadowolony, ale po wprowadzeniu kodu jQuery, guzik button nie wysyła mi danych do pliku z wyjątkiem danych z INPUTów.

Aha... <input type='submit'/> też nie wysyła przy jQuery.

Co zrobić aby jQuery wysłało WSZYSTKIE dane?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wNogachSpisz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Cytat(Tomplus @ 9.04.2011, 19:56:47 ) *
To że gdy uzytkownik ma wyłączoną obsługę JS to formularz będzie wysyłał informacje tylko guzika który został kliknięty, co jest prawidłowe i chciałem to samo przy pomocy obsługi JQuery (np. gdy kliknę guzik sie wyłączy, ale to potrafię)
Dlatego pobieranie value ostatniego buttona o tej samej nazwie nie dostarcza mi prawidłowych informacji.

Fakt że dajesz więcej niż jeden submit zdradza błąd natury projektowej i powinieneś przemyśleć na nowo strukturę formularza, tak by nie trzeba było rzeźbić.

Cytat(Tomplus @ 9.04.2011, 19:56:47 ) *
hmm... kod ze średnikami lepiej wygląda, wiadomo gdzie się linijka kończy.

Wg mnie jest dokładnie odwrotnie, kod bez średników wygląda lepiej.
Na prawde potrzebujesz średnika żeby określić gdzie kończy się linia?
W zeszycie do Języka polskiego też wstawiasz średniki na końcu każdego wiersza?
Ciekaw jestem co na to Twoj nauczyciel (IMG:style_emoticons/default/happy.gif)
Go to the top of the page
+Quote Post
Tomplus
post
Post #3





Grupa: Zarejestrowani
Postów: 1 884
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


Cytat(wNogachSpisz @ 9.04.2011, 20:15:56 ) *
Fakt że dajesz więcej niż jeden submit zdradza błąd natury projektowej i powinieneś przemyśleć na nowo strukturę formularza, tak by nie trzeba było rzeźbić.


Architektura jest dobra.

Jeżeli bez użycia JS mam tablicę o

array (
par = 1416,
r1 = array (
1416 => on
),
)

to są dane w postaci które potrzebuje do wykorzystania.
a ja potrzebuje tylko pomoc w pobraniu danych z buttona który zawiera informacje, a jego nazwa również jest tablicą.

czyli mam dane:
  1. <button type='submit' name='par' value='1416'>Wyslij</button>
  2. <button type='submit' name='par' value='1466'>Wyslij</button>
  3. <button type='submit' name='par' value='2010'>Wyslij</button>


ale w innym miejscu są już dane:

  1. <button type='submit' name='par[1]' value='1416'>Wyslij</button><button type='submit' name='par[2]' value='1416'>Wyslij</button><button type='submit' name='par[3]' value='1416'>Wyslij</button>
  2. <button type='submit' name='par' value='1466[1]'>Wyslij</button><button type='submit' name='par[2]' value='1466'>Wyslij</button><button type='submit' name='par[3]' value='1466'>Wyslij</button>
  3. <button type='submit' name='par[1]' value='2010'>Wyslij</button><button type='submit' name='par[2]' value='2010'>Wyslij</button><button type='submit' name='par[3]' value='2010'>Wyslij</button>

i mam macierz, kliknięty button ma wysłać do skryptu dane które są tablicą lub zwykłą zmienną, ale to nie jest wazne, bo skrypt przetwarza prawidłowo dane jeżeli są wysłane bez JQuery


Więc potrzebuje wysłać to co jest w NAME i VALUE, tak jak to się dzieje z INPUT RADIO

Cytat( @ 9.04.2011, 20:15:56 )
Wg mnie jest dokładnie odwrotnie, kod bez średników wygląda lepiej.
Na prawde potrzebujesz średnika żeby określić gdzie kończy się linia?
W zeszycie do Języka polskiego też wstawiasz średniki na końcu każdego wiersza?
Ciekaw jestem co na to Twoj nauczyciel (IMG:style_emoticons/default/happy.gif)

bez przesady.. ale to jest przyzwyczajenie z pisania kodu w PHP.



Cytat(wNogachSpisz @ 9.04.2011, 20:27:18 ) *
Pytanie brzmi:
Czy nie prościej zrobić ten formularz bez elementów typu button?

Ale jak napisałem, przy zastosowaniu INPUT type='submit' też nie wysyła danych, więc na jedno wychodzi.

A dlaczego stosuje BUTTON ? Dlatego że umożliwia mi wyświetlenie treści innej niż wartości guzika.
Fakt móglbym zastosować INPUT HIDDEN oraz INPUT SUBMIT
ale po co ? skoro HTML umożliwia skrócenie tego zapisu do jednego tagu.


Ten post edytował Tomplus 9.04.2011, 19:39:41
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 17:24