Temat: PHP a formularze- problem

Witam, mam problem z napisaniem mojego kodu, mam nadzieję na uzyskanie pomocy, przedstawiam fragment:
$klk=0;
$klk1=0;

function runMyFunction() {
$klk=$klk+1;
$_SESSION['klk']=$klk;
}
function runMyFunction1() {
$klk1=$klk1+1;
$_SESSION['klk1']=$klk1;
}

echo '<div class="left">'.$row1[1].'<br /><br /><img src="'.$id1.'.jpg"><form action="voting.php" ><br /><input type="image" src="/button1.png" border="0" alt="submit" ></form></div>';
echo '<div class="right">'.$row2[1].'<br /><br /><img src="'.$id2.'.jpg"><form action="voting.php"><br /><input type="image" src="/button2.png" border="0" alt="submit" ></form></div>';
echo '<div class="center"><a href="index.php"><img src="vs.png" id="vs"></a><br /><br /><form action="statystyki.php"><input type="image" src="/statystyki.png" border="0" alt="submit" id="statystyki"></form></div>';

$_SESSION['klk']=$klk;
$_SESSION['klk1']=$klk1;

Chciałbym aby ten kod, po kliknieciu przycisku (submit) wykonal funkcje pierwsza albo druga (w zaleznosci ktory przycisk klikne) i dopiero pozniej przeniosl mnie na voting.php, gdzie bda na mnie czekac zaktualizowane zmienne przeslane po sesji

Temat: PHP a formularze- problem

JUZ NIE TRZEBA, WSZYSTKO HULA
Tomasz Waryan

Tomasz Waryan Student, Uniwersytet
Pedagogiczny w
Krakowie

Temat: PHP a formularze- problem

czemu używasz 2 funkcji skoro można to zrobić za pomocą jednej ? :)
Napisz swoje rozwiązanie problemu - jestem bardzo ciekawe jak to zrobiłeś "po swojemu"

Temat: PHP a formularze- problem

echo '<div class="left">'.$row1[1].'<br /><br /><img src="'.$id1.'.jpg"><form action="voting.php" method="POST" ><br /><input type="image" src="/button1.png" border="0" alt="submit" name="jeden" value="1"></form></div>';
echo '<div class="right">'.$row2[1].'<br /><br /><img src="'.$id2.'.jpg"><form action="voting2.php" method="POST"><br /><input type="image" src="/button2.png" border="0" alt="submit" name="dwa" value="1"></form></div>';

Napisalem to w ten sposob, i w pliku voting.php sprawdzam czy ($_POST['jeden']=='1'), jesli tak to aktualizuje baze,
Niestety ten sposob dziala tylko na google chrome i ponoc safari, a na edge/IE czy Mozilli nie, takze nadal trzebaby zmienic sposob :/

Temat: PHP a formularze- problem

Chrystian K.:
Witam, mam problem z napisaniem mojego kodu

Raczej ze zrozumiem jak działają formularze.

Odwiedź to miejsce:
http://forum.php.pl/index.php?showforum=27
Tam jest więcej ludu z podobną do Twojej znajomością PHP oraz więcej cierpliwych żeby tłumaczyć jak krowie na rowie
O np tu:
http://forum.php.pl/MySQLPHP_Formularz_z_wieloma_check...Ten post został edytowany przez Autora dnia 05.12.15 o godzinie 17:55
Janusz Szcząchor

Janusz Szcząchor Fizyk kwantowy

Temat: PHP a formularze- problem

Twój dokument HTML zawiera dwa formularze, być może to nie podoba się niektórym przeglądarkom.
Ja do takich kombinacji danych używam JavaScript z Ajax. Nie trzeba wtedy w ogóle używać znacznika <form>.

konto usunięte

Temat: PHP a formularze- problem

Janusz S.:
Twój dokument HTML zawiera dwa formularze, być może to nie podoba się niektórym przeglądarkom.

Ilość formularzy w dokumencie HTML nie ma absolutnie żadnego znaczenia.
Ja do takich kombinacji danych używam JavaScript z Ajax. Nie trzeba wtedy w ogóle używać znacznika <form>.

Trzeba, chyba, że nie dba się o poprawność składniową dokumentu HTML. Ajax służy w tym wypadku jedynie do asynchronicznego submitu formularza, korzystanie z niego nie zwalnia z dbania o właściwą składnię HTML...
Janusz Szcząchor

Janusz Szcząchor Fizyk kwantowy

Temat: PHP a formularze- problem

Najpierw trzeba przetworzyć zawartość pól typu input przy pomocy JavaScriptu, Ajax nie przesyła jakichkolwiek formularzy. Dane muszą być odpowiednio sformatowane, można je wysłać w formie tablicy, a to nie ma nic wspólnego z formularzami. W Ajaxie metodę GET, POST, czy inną trzeba niezależnie zadeklarować, jak i adres skryptu do którego się wysyła dane. No i oczywiście nie należy używać jakiegokolwiek przycisku typu submit, a typu button.

Nie trzeba nie oznacza, że nie należy. Oznacza to tylko, że przeglądarki po swojemu implementują HTML. Zresztą zajrzyj Ajax i PHP, Ćwiczenia Praktyczne, Marcin Lis, rozdział 3.

A co do liczby formularzy w dokumencie, to nic nie twierdziłem, że nie mogą być dwa. To było tylko przypuszczenie. Osobiście w dokumentacji nie znalazłem przeciwwskazań, aby nie stosować kilku formularzy. Bez znajomości całego dokumentu trudno mi powiedzieć co nie działa. Stawiający pytanie nie wskazał, o które wersje przeglądarek mu chodziło. Możliwości przeglądarek zmieniają się z wersji na wersję.

Temat: PHP a formularze- problem

Pitu pitu a problemu juz nie ma ;p input type image dziala tak jak ma tylko w niektorych przegladarkach, dalem type submit a obrazek dodalem w css i dziala wszystko.

konto usunięte

Temat: PHP a formularze- problem

Janusz S.:
Najpierw trzeba przetworzyć zawartość pól typu input przy pomocy JavaScriptu, Ajax nie przesyła jakichkolwiek formularzy. Dane muszą być odpowiednio sformatowane, można je wysłać w formie tablicy, a to nie ma nic wspólnego z formularzami. W Ajaxie metodę GET, POST, czy inną trzeba niezależnie zadeklarować, jak i adres skryptu do którego się wysyła dane.

Piszesz o rzeczach oczywistych. Serializujesz dane formularza (tudzież "przerabiasz" na jeden ze znanych formatów, np JSON czy XML) i przesyłasz na wskazany adres. Ta metoda nie zmieniła się z grubsza od 15 lat, gdy stworzono XMLHttpRequest (zmienia się sposób wywołania w zależności od tego, czy używasz "gołego" JS czy jakiejś biblioteki typu jQuery czy innej).
No i oczywiście nie należy używać jakiegokolwiek przycisku typu submit, a typu button.

"nie należy używać jakiegokolwiek przycisku typu submit" - jest to twierdzenie nieprawdziwe. Wysyłając dane formularza za pomocą AJAX można podpiąć eventListener na zdarzenie "submit" do elementu SUBMIT (co nadpisze domyślą akcję wysyłania formularza synchronicznie). Używając inputa typu BUTTON pozbawiasz formularz domyślnego zachowania, mało tego - nie "ubierając" pól formularza sprawisz, że w ogóle nie jest on kuloodporny - czyli gdy z jakiś przyczyn JS nie załaduje się, trzeba zadbać, by formularz został wysłany domyślnym sposobem (czyli w tym wypadku do PHP), bo pomimo tego, że JS opanował już każde większe środowisko (komputery, mnóstwo urządzeń mobilnych, telewizory, ba, nawet lodówki!) w jakim da się przeglądać net, ciągle jeszcze takie sytuacje są możliwe i należy się na to jakoś przygotować...
Nie trzeba nie oznacza, że nie należy. Oznacza to tylko, że przeglądarki po swojemu implementują HTML. Zresztą zajrzyj Ajax i PHP, Ćwiczenia Praktyczne, Marcin Lis, rozdział 3.

Akurat w tym sensie przeglądarki radzą sobie z formularzami doskonale od lat. I to bez JSa.
Różnice związane z interpretacją samego HTML w dzisiejszych przeglądarkach są tak małe, że w zasadzie można je pominąć w kontekście formularzy. I w związku z tym Twoje twierdzenie "Twój dokument HTML zawiera dwa formularze, być może to nie podoba się niektórym przeglądarkom." nie ma nic wspólnego z prawdą (o czym pisałem wcześniej). Więc raz jeszcze: dokument HTML może zawierać dowolną ilość formularzy HTML - zakładając, że ów dokument jest poprawny składniowo.

Oraz: a ja polecam kurs HTML od kogoś, kto na HTML/JS zjadł zęby: http://ferrante.pl/books/html/
zamiast książki Helionu od kogoś zajmuje się taśmowym pisaniem książek...
A co do liczby formularzy w dokumencie, to nic nie twierdziłem, że nie mogą być dwa. To było tylko przypuszczenie. Osobiście w dokumentacji nie znalazłem przeciwwskazań, aby nie stosować kilku formularzy. Bez znajomości całego dokumentu trudno mi powiedzieć co nie działa. Stawiający pytanie nie wskazał, o które wersje przeglądarek mu chodziło. Możliwości przeglądarek zmieniają się z wersji na wersję.

Nie w zakresie formularzy, które są już od dawna zdefiniowane (ok, z HTML5 przybyło nieco nowych pól, ale to też już kilka lat temu). Zmienia się/uaktualnia implementacja nowych, przybywających feature'ów HTML5, CSS3 i ES2015...

Ale odbiegliśmy mocno od tematu, bo to jest grupa PHP i nie tego dotyczyło zapytanie (które zresztą tak swoją drogą rozstało przez pytającego rozwiązane)...
Janusz Szcząchor

Janusz Szcząchor Fizyk kwantowy

Temat: PHP a formularze- problem

Nie widzę powodów dlaczego nie miałby się załadować JS. Dziś już nawet wszystkie podstawowe przeglądarki na tablety, czy smartfony obsługują JS i jQuery. Przytłaczająca ilość witryn to CMS-y generujące dokumenty pełne skryptów bez których nie da się normalnie ich wyświetlić. I nikt się nie martwi egzotycznymi przeglądarkami. Dlatego, moim zdaniem, już nie ma potrzeby dublowania technologii. Oczywiście jeśli ktoś chce, to nic nagannego.

A poza tym pytający znalazł rozwiązanie. Okazuje się, że miałem rację w tym, że coś się nie podoba przeglądarkom.

konto usunięte

Temat: PHP a formularze- problem

Chrystian K.:
Pitu pitu a problemu juz nie ma ;p input type image dziala tak jak ma tylko w niektorych przegladarkach, dalem type submit a obrazek dodalem w css i dziala wszystko.

No tak, tak to jest, jak się używa niewłaściwych typów INPUT :)
I wbrew pozorom nie ma to nic wspólnego z tym, co pisał kolega wyżej ("miałem rację w tym, że coś się nie podoba przeglądarkom"). To po prostu niewłaściwy typ INPUT, co powodowało brak wysyłanie formularza, ot tyle.

Jeszcze drobna uwaga na koniec odnośnie samej struktury formularza. Jeżeli już musisz robić odstępy między polami, to korzystaj z możliwości CSS (np, padding czy margin), zamiast wpychać niepotrzebny, nadmiarowy kod (<BR />) i używaj elementu LABEL do opisu danego pola (zerknij na przykład zamieszczony tutaj: http://ferrante.pl/books/html/chapter9.html).

Następna dyskusja:

koszyk w cookie i php - pro...




Wyślij zaproszenie do