![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Pisze plugin do Wordpressa i mam problem. Nie działa mi przekazywanie zmiennych wprowadzonych przez użytkownika. Jeżeli wyrzucę z mojego kodu operatory IF i Switch to zaczyna działać. Mam tu na myśli funkcję, która znajduje się na samym dole.
--edycja Mam wrażenie jakby formularze się sumowały. Jeżeli to jest możliwe. Ten post edytował suchy1 30.12.2013, 10:25:54 |
|
|
![]() ![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dodam kropki kolo $adres to nie działa. Wrzucam jeszcze raz kod w mniejszej formie. Obecnie 'woda_ciepla_kuchnia' => $woda_ciepla_kuchnia, zawsze przyjmuje wartość 0 niezależnie od tego co użytkownik wprowadzi.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Jak wspomniał fate. Wykonaj zapytanie z linii 35 np. w phpmyadminie i sprawdź wynik.
Dodatkowo http://codex.wordpress.org/Debugging_in_WordPress twoim przyjacielem (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Wynik jest prawidłowy. System wchodzi w tego IF i prezentuje formularz. Jeżeli wybiore inny adres to nie prezentuje formularza więc to jest ok - moim zdaniem bo działa. Po uruchomieniu DEBUG w WP mam tylko kilka NOTICE do zmiennych, które nie zostały zdefiniowane.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Obecnie 'woda_ciepla_kuchnia' => $woda_ciepla_kuchnia, zawsze przyjmuje wartość 0 niezależnie od tego co użytkownik wprowadzi. Tylko woda_ciepla_kuchnia jest 0? Pozostałe dane przyjmują dane z formularza? Sprawdź te NOTICEy - czy jeden z nich dotyczy $_POST['woda_ciepla_kuchnia']? Czy odpowiada linii 33 z Twojego ostatniego listingu? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Nie mogę wejść do ostatniego IF, jakby isset nie działał prawidłowo. Jeżeli go usunę to dodaje się wpis do bazy. Oczywiście z zerową wartością bo insert leci do bazy w momencie wyświetlenie formularza.
--edycja Mam tylko jeden NOTICE dotyczący $adres = $_POST["adres"]; a nie powinno być także dla $_POST['woda_ciepla_kuchnia'] (IMG:style_emoticons/default/questionmark.gif) Ten post edytował suchy1 30.12.2013, 12:50:27 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Teraz zauważyłem w Twoim pierwszym listingu, że po podaniu i wysłaniu adresu, wyświetlą się dwa formularze, i oba z przyciskiem o nazwie "submit". Dobrze myślę, że ten pierwszy - z rozwijalną listą adresów zamieszkania - zawsze się wyświetla? Spróbuj na początek dać unikalne nazwy wszystkim formularzom i wszystkim przyciskom submit. Zobacz co się dzieje i daj znać.
Tuż pod od linią dodaj
i przeanalizuj co tam drukuje. Dla pewności pytam: ten pierwszy listing w Twoim pierwszym poście to pełny listing funkcji ow_display_user()? |
|
|
![]() ![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
<option value="">Wybierz swój adres</option>
$_POST adres jest puste bo optiony nie maja zadnego value tylko tekst opisujacy. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje wszystkim za dotychczasowa pomoc. Cała funkcja:
Po dodaniu:
wyświetla się:
ale dalej nie wpadam w if(isset($_POST['zapisz'])) <option value="">Wybierz swój adres</option> $_POST adres jest puste bo optiony nie maja zadnego value tylko tekst opisujacy. Masz rację ale ta zmienna jest przekazywana dalej. Ten post edytował suchy1 30.12.2013, 13:51:50 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Zgadza się. Warunek jest prawdziwy bo wyświetla mi się formularz.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
ale dalej nie wpadam w if(isset($_POST['zapisz'])) Bo jest w warunku z wiersza 39: czyli w warunku sprawdzającym, czy wciśnięto przycisk OK, a wciśnięcie obu przycisków jednocześnie nie jest możliwe. Wyrzuć cały blok od wiersza 64 do 79 gdzieś na zewnątrz i podrasuj, żeby przechwytywał adres z poprzedniego formularza (np. zapisz adres w sesji). |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 8 Dołączył: 2.04.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
@bostaf możesz mi pomóc jeszcze bardziej ? Nie znam się na sesji. Chodzi o to aby użytkownik wybrał swój adres. Następnie sprawdzam ile ma np. wodomierzy. na tej podstawie wyświetlam odpowiedni formularz. Dlatego tyle warunków dałem.
Ten post edytował suchy1 30.12.2013, 14:18:59 |
|
|
![]() ![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 374 Pomógł: 79 Dołączył: 6.04.2010 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Sesja to oględnie mówiąc zmienne zapisywane po stronie serwera. Zasugerowałem Ci zmienne sesyjne, bo przetwarzasz kilka formularzy szeregowo i trzeba jakoś te informacje z poszczególnych etapów zapamiętać. W sesji najłatwiej.
W tym pierwszym bloku warunkowym if (isset($_POST['ok'])){ zapamiętaj adres w zmiennej sesyjnej, np.:
a w drugim bloku warunkowym (if(isset($_POST['zapisz']))), zapisując dane w bazie odczytaj wartość tej zmiennej i od razu ją zlikwiduj, żeby nie śmiecić:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 21:45 |