Article View: pl.comp.lang.php
Article #231492Re: Panie Lemat pomożesz?
From: Lemat
Date: Tue, 22 Nov 2016 17:29
Date: Tue, 22 Nov 2016 17:29
53 lines
3333 bytes
3333 bytes
W dniu 22.11.2016 o 16:29, w systemie siła 'PO/EU pisze: > dzięki za zainteresowanie > > chodzi mi o takie jakby zagnieżdżenie formularzy > > czyli mamy jeden formularz zewnętrzny obejmujący wpisy na całej stronie, > a drugi formularz wewnętrzny obejmujący tylko jeden wpis na stronie - i > takich N razy <form>ularzy się nie zagnieżdża. Posłużę się przykładem z twojej ulubionej dziedziny. Wyobraź sobie arkusz excela w kolumnami: imię, nazwisko, przynależność do Partii. Arkusz ma zatem 3 kolumny i N wierszy. Standardowo <form> otacza cały arkusz przesyłając do skryptu PHP wszystkie pola czyli 3*N zmiennych. Jeżeli otoczyć <form>ularzami każdy wiersz osobno to masz N formularzy - o ile dobrze pamiętam submit jednego z nich przesyła do skryptu PHP tylko pola w nim zawarte - czyli 3 sztuki. Ale każdy submit powoduje przeładowanie strony i utratę zmian przeprowadzonych w innych wierszach. Aby wiedzieć który wiersz został przesłany daje się jakiegoś hiddena z unikalnym identyfikatorem. Można jednak przechwycić JavaScriptem zdarzenie onsubmit formularza, zapakować hiddena + 3 zmienne do struktury AJAXowej, wysłać do skryptu PHP, skrypt PHP zwraca kawałek tekstu, który AJAX odbiera i można z nim coś zrobić - na przykład napis "dupa" jeżeli wybrana Partia nie jest jedyną słuszną. Funkcja obsługująca onsubmit zwraca false zapobiegając przeładowaniu strony i wysłaniu formularza tradycyjną drogą. Można też Javascriptem przechwycić zdarzenia onblur lub onchange konkretnego inputa. Do inputa musiałbyś dodawać niestandardowe atrybuty pozwalające zidentyfikować wiersz oraz kolumnę. Te atrybuty oraz wartość pola pakujesz w strukturę AJAXową, wysyłasz do skryptu PHP, skrypt PHP odpowiada tekstem, który możesz jakoś wykorzystać. Do poduszki: http://www.w3schools.com/jsref/event_onsubmit.asp http://www.w3schools.com/jsref/event_onblur.asp http://www.w3schools.com/jsref/event_onchange.asp http://www.w3schools.com/jsref/dom_obj_event.asp http://www.w3schools.com/xml/ajax_intro.asp http://www.w3schools.com/tags/att_global_data.asp PS. napis "dupa" stosuję osobiście kiedy debuguję skrypty - więc nie ma się czego wstydzić. -- Pozdrawiam Lemat
Technical Details
Message-ID:
<58348076$0$640$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<o0q0ge$f00$1@node2.news.atman.pl> <58308b69$0$5143$65785112@news.neostrada.pl> <o11o8j$u3a$1@node2.news.atman.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin2!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Panie Lemat pomożesz? Newsgroups: pl.comp.lang.php References: <o0q0ge$f00$1@node2.news.atman.pl> <58308b69$0$5143$65785112@news.neostrada.pl> <o11o8j$u3a$1@node2.news.atman.pl> From: Lemat <#@lemat.priv.pl> Date: Tue, 22 Nov 2016 18:29:37 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <o11o8j$u3a$1@node2.news.atman.pl> Lines: 53 Message-ID: <58348076$0$640$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 79.189.200.118 X-Trace: 1479835766 unt-rea-b-01.news.neostrada.pl 640 79.189.200.118:55857 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit