Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Moment wysyłania formularza
Forum PHP.pl > Forum > Przedszkole
Rid
Nie wiem ,czy moje spostrzeżenia są,trafne ,ale z chwilą wysłania formularza ,żadne działania,które jeszcze wykonują się podczas wysyłania po stronie klienta ,chodzi głównie o js ,chyba nie mają już znaczenia,gdyż do tablicy post lub get(w zależności od metody wysłania) zostały zapisane wszelkie zmienne aplikacji.Czy tak aby nie jest?questionmark.gif
erix
Trochę nie po polsku, ale jeśli dobrze zrozumiałem, to tak.
Rid
To znaczy,że najpierw wykonują się operacje po stronie serwera ,później po stronie klienta-czy to raczej działa niezależnie od siebie.
Próbuję jakoś to dokładniej zrozumieć.
buliq
Jeżeli wysyłamy coś do serwera (formularz) to js jak ma jakiegoś timeouta czy intervala włączonego to ciągle działa. Tak bynajmniej zauważyłem. Wysyłałem np zdjęcie na serwer i w międzyczasie wyskakiwały np alerty. Natomiast nie będą działały żadne rzeczy uruchomione po wciśnięciu submit i rozpoczęciu wysyłania (chyba?)
Rid
Może dam taki przykład:
  1. $jq(document).submit(function () {
  2. var opis = $jq("#Pole").val('');
  3. $jq.ajax({
  4. url: 'przedmiot.aspx',
  5. async: false,
  6. dataType: "txt",
  7. data: {Opisy:opis},
  8. type: 'POST'
  9. });
  10. });

Funkcja zeruje wartość pola tekstowego podczas wysyłania formularza ,i wysyła tą wartość ajaxem na serwer bez przeładowania
strony.
I teraz jeśli zrobię coś takiego:
  1. $phpvar="coś tam";
  2. if (!($_POST)) {
  3. if (isset($_POST['Opis'])) {
  4. $phpvar=$_POST['Opis'];
  5. }}
  6. <input type='text' id='Pole' value='{$phpvar}'/>;
  7. /Po wysłaniu formularza/
  8. if ($_POST){
  9. $zmienna=$_POST['Pole'];
  10. echo $zmienna;--i będzie napis"coś tam"
  11. }
  12.  


Jeśli jak zrobię:
  1. if (!($_POST)) {
  2. if (isset($_POST['Opis'])) {
  3. $_SESSION["phpvar"]=$_POST['Opis'];
  4. }}
  5. <input type='text' id='Pole' value='{$_SESSION["phpvar"]}'/>
  6. if ($_POST){
  7. $zmienna=$_POST['Pole'];
  8. echo $zmienna;--będzie pusta " "
  9. }

-to wartość pola tekstowego Pole będzie wyzerowana.
Sesja zapisuje się do tablicy asocjacyjnej request z tego co przeczytałem,wszelkie zmienne do tablicy asocjacyjnej Post (w zależności od metody wysyłania formularza).Podczas przesyłania formularza sesja zostaje utworzona i przepisana jej wartość,jednak już jakiekolwiek nadpisanie zmiennej przy wysłaniu formularza nie daje rezultatu.
Zastanawia mnie dlaczego tak jest?questionmark.gif
nospor
Same byki...

Jak chcesz pobrać zawartosc pola do zmiennej i je wyzerować to nie:
var opis = $jq("#Pole").val('');
a:
var opis = $jq("#Pole").val();
$jq("#Pole").val('');

To też jest ciekawe:
if (!($_POST)) {
if (isset($_POST['Opis'])) {
$phpvar=$_POST['Opis'];
}}

Tłumaczę Twoj kod:
Jeśli post nie istnieje to jesli istnieje Opis w poście to zrób coś tam...
Totalny bezsens.
Równie dobrze można napisać:
Jeśli nie istnieje koszyk, ale jeśli istnieje jabłko w koszyku, to zjedz jabłko...

Poza tym w php dobierasz się do Opis, ale ajaxem wysyłasz Opisy.


Podsumowąc: patrz co piszesz
Rid
Cytat
Same byki...

Pisałem od ręki smile.gif-przerabiając z c#;,ale nie widzę w tym nic bezsensownego:
  1. if (!($_POST)) {.....................-jeśli formularz nie został wysłany(ajax przesyła bez przeładowania),to zrób to:
  2. if (isset($_POST['Opis'])) { -jeśli zmienna opis istnieje(sprawdzam istnienie zmiennej);
  3. $phpvar=$_POST['Opis']; - przypisz tą zmienną do $phpvar
  4. }}
nospor
wskaż palcem to zamiast przyjąć do wiadomości to palca ci utną....

Cytat
if (!($_POST)) {.....................-jeśli formularz nie został wysłany(ajax przesyła bez przeładowania),to zrób to:
Poznaj podstawy ajaxa, zrob parę testów, zrob sobie print_r($_POST); na ajaxie potem się kłóć.

Nawet gdybyś miał rację, gdyby ajax nie wysyłał posta, to jakim cudem te warunki mają działać:
if (!($_POST)) {
if (isset($_POST['Opis'])) {

Przecież one się nawzajem wykluczają! Jak nie istnieje POST to nie istnieje nic w POST bo POST nie ma.

Przypowieść o koszyku i jabłku jest aż tak trudna?
Rid
Faktycznie,jak mówiłem robiłem od palca:
  1. if ($_SERVER['REQUEST_METHOD'] != 'POST') {.....................-jeśli formularz nie został wysłany(ajax przesyła bez przeładowania),to zrób to:
  2. if (isset($_POST['Opis'])) { -jeśli zmienna opis istnieje(sprawdzam istnienie zmiennej);
  3. $phpvar=$_POST['Opis']; - przypisz tą zmienną do $phpvar
  4. }}

Teraz ,już chyba sensowniej.
nospor
Cytat
ak mówiłem robiłem od palca:
Jak palcem robisz to nie myślisz? Bo moja kilkuletnia córka wie, że jak nie ma koszyka to nie wyciągnie jabłka z koszyka tongue.gif

Coś ty się tego posta przyczepił?
Czemu nie zrobisz po prostu:
if (isset($_POST['Opis'])) {
$phpvar=$_POST['Opis'];
}

Rid
Chyba ,nie widzi Pan ,że Ajax przesyła metodą Post zmienną podczas wysyłania formularza.
nospor
smile.gif
Widzę, ale Ty chyba wyłączyłeś totalnie myślenie i dalsza dyskusja z Tobą dzisiaj nie ma sensu smile.gif Idź robić dalej tym palcem co ty tam robisz, nie wnikam wink.gif

ps: nospor a nie żaden Pan.
Rid
Długo czytałem i stwierdzam ,że ten kod jest prawidłowy:
1.
  1. if ($_SERVER['REQUEST_METHOD'] != 'POST') {-sprawdzenie postu z serwera
  2. if (isset($_POST['Opis'])) { -sprawdzenie postu ajaxowego
  3. $phpvar=$_POST['Opis']; -
  4. }}


Metoda $_SERVER['REQUEST_METHOD'] != 'POST' -nie bierze pod uwagę requestu ajaxowego przesyłanego metodą POST,gdyż
i tutaj cytat:
Cytat
"Request ajaksowy", to także oczywiście "request HTTP", tyle, że obsługiwany przez klienta w wyjątkowy sposób.
,
tak więc nie jest prawdą,że:
Cytat
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
if (isset($_POST['Opis'])) {

Przecież one się nawzajem wykluczają!

Trzeba sobie zdać sprawę,że to dwa różne requesty,request ajaxa i request serwera.
Chyba sądzę nonspor,że to Pan powinien tutaj zajrzeć
nospor
Mistrzu, po tym co ty ty zmanipulowałes:
Cytat
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
if (isset($_POST['Opis'])) {

Przecież one się nawzajem wykluczają!

Nie dyskutuję już z Tobą więcej Panie manipulancie cudzych wypowiedzi.

Przekręciłeś moje zdanie. Moje zdanie brzmiało tak:
Cytat
if (!($_POST)) {
if (isset($_POST['Opis'])) {

Przecież one się nawzajem wykluczają!

To po pierwsze.
A po drugie, nie obraź się, ale z myśleniem u CIebie cieńko i wszelkie próby wyjaśnienia ci prostych rzeczy spełzają na niczym.Szkoda więc mojego czasu na tłumaczenia prostych rzeczy, które dzieci rozumieją.

I po trzecie:
nawet wypowiedź, którą zmanipulowałeś, nadal jest prawdziwa.

DLa własnego dobra:
nie rozumiesz tego co czytasz, sprawdzaj więc w praktyce te banalne kody które próbujesz wcielić w życie.

Wyświetl sobie $_SERVER['REQUEST_METHOD'] , sprawdź co to zawiera, gdy jest form, gdy jest get, gdy jest ajax wysyłany postem - potem dyskutuj.

zamper
Rid, przetłumacz sobie ten swój wspaniałomyślny i zarazem fenomenalny pomysł na pseudokod. Pozwól, że będzie lepiej jak zrobie to za ciebie:

  1. if (!($_POST)) { //Jeżeli tablica $_POST nie istnieje
  2. if (isset($_POST['Opis'])) { //Jeżeli pole 'opis' w tablicy $_POST istnieje
  3. ... //...


Jeżeli ta tablica nie istnieje, to jak ma istnieć jej pole/komórka ?


Nie widzisz że to tak jak:
Jeżeli nie masz patyka to obgryź z niego korę biggrin.gif


Bez urazy
Rid
To ja powiem tak:
Pisałem $_POST to mi Pisałeś bajkę o koszyku i jabłkach.
Pisałem $_SERVER['REQUEST_METHOD'] != 'POST' to znowu Pisałeś mi tą samą bajkę z jabłuszkiem i koszykiem.
Tak więc stwierdziłem ,że nie ma u Pana żadnej różnicy w obu tych poleceniach,dlatego pozwoliłem zmanipulować sobie
Pańską wypowiedź-"taka moja,bajeczne stwierdzenie".
Nie umie Pan zargumentować swoich wypowiedzi tylko bajki opowiada.
Ja ten kod przerabiałem z c#,który u mnie doskonale funkcjonuje,nie wklepywałem go tylko przerobiłem na PHP, mniej więcej z tym co mam,aby większość ludzi na tym forum miej więcej wiedziała o co chodzi.
Nie otrzymałem od Pana, żadnej sensownej odpowiedzi na nurtujący mnie problem, tylko bajeczki.
Niektórzy po prostu mają talent do krytyki i do bajkopisarstwa.
Jedyną sensowną odpowiedź udzielił mi erix za co mu dziękuję.
Temat do zamknięcia.


nospor
Cytat
Nie umie Pan zargumentować swoich wypowiedzi tylko bajki opowiada.
Bo widzisz, do Ciebie proste fakty nie docierają. Myślałem więc, że dotrę do Ciebie przez przypowieść - może ta forma byłaby dla Ciebie bardziej przyswajalna. Skoro rozumie ją moje dziecko, sądziłem że i ty zrozumiesz. Ale widzę nawet ta forma nie jest dla Ciebie przyswajalna.

Cytat
Ja ten kod przerabiałem z c#,który u mnie doskonale funkcjonuje,nie wklepywałem go tylko przerobiłem na PHP
I kto tu bajki opowiada....


Cytat
Nie otrzymałem od Pana, żadnej sensownej odpowiedzi na nurtujący mnie problem
W moim pierwszym poście wskazałem ci 3 błedy jakie popełniłeś. Nie moja wina, że nie rozumiesz prostych rzeczy.

Cytat
Temat do zamknięcia.
SIe robi.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.