Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]naprawde dziwny problem z przyciskiem
Forum PHP.pl > Forum > Przedszkole
Gallareton
Ostatnio mam ciągle problemy z tym, że jedne przyciski mi działają, a drugie nie.

  1. <?php
  2. if($rek == 0)
  3. include('plik.php')
  4. else if($rek > 0)
  5. echo '<center><form action="" method="post"><input type="submit" value="Zobacz" name="zobacz"></form>' ;
  6. if($_POST['zobacz'] == true) {
  7. echo $text
  8. }
  9. ?>


Tak mniejwięcej wygląda kod. Na stronie wyświetla się odpowiedni przycisk, lecz nie działa. Już od dłuższego czasu szukam tu jakiegoś błędu składni, czy innego, ale wciąż nie mogę pojąć co tu nie działa.
Gacek89
<form action="" method="post"><imput type="hidden" name="zobacz" value="true"><input type="submit" value="Zobacz" ></form>
Gallareton
Spróbowałem tego i wciąż nie działa (poprawiłem imput na input)
bartg
To nic nie zmienia..

Może dodaj akcje do forma, co? smile.gif
Gallareton
Dotychczas wszystkie przyciski robiłem w ten sposób (kiedys w action miałem nazwę pliku) i 99% działało bez problemu. Ostatnio wziąłem się do roboty, kopiowałem "stare" przyciski, zmieniałem zmienne i już nie działa. Czasem przycisk działał, a kiedy dodałem do niego zapytanie mysql przestawał działać. Najgorsze jest to, że po usunięciu dodanego przed chwilą zapytania przycisk i tak nie działał. Czy to może być wina mojego komputera? (ostatnio zachowuje się dość dziwnie)
bartg
Raczej nie...

Już wiem:
  1. <?php
  2. if(!empty($_POST['zobacz'])) {
  3. echo $text
  4. }
  5. ?>

Nie zauważyłem tego wcześniej, a po prostu wartość POST'a nie równa sie true
Gallareton
Dobra, kapuje że to mógł być błąd tego typu i zaraz sprawdzę czy będzie działać. Ale w takim razie potrafi ktoś wyjaśnić jak ja to zrobiłem, że wszystkie inne przyciski działają? biggrin.gif

Ojć... płacz, zgrzytanie zębami, error 404 i request timeout (2 ostatnie niedosłownie)... nie działa ...

Może jeszcze jakieś pomysły? sad.gif
Pilsener
  1. <?php
  2. if($rek == 0)
  3. include('plik.php')
  4. else if($rek > 0)
  5. echo '<center><form action="" method="post"><input type="submit" value="Zobacz" name="zobacz"></form>' ;
  6. if($_POST['zobacz'] == true) {
  7. echo $text
  8. }
  9. ?>


Cytat
Ojć... płacz, zgrzytanie zębami
- bo:

1. Używaj klamer w instrukcjach warunkowych
2. Nie polecam nadawania zmiennym wartości identycznych ze słowami kluczowymi i nazwami funkcji w PHP
3. Radzę dać print_r($_POST) i zobaczyć, co jest kluczem, a co wartością w tablicy $_POST
4. Do sprawdzenia, czy przycisk został kliknięty:
  1. <?php
  2. if(!empty($_POST['nasz_przycisk'])){
  3. //kod
  4. }
  5. ?>
- standardowo używa się empty na wypadek, gdyby tablica została wysłana, ale była pusta lub wartość była = 0.
5. I wklejaj co zrobiłeś, bo płacz i zgrzytanie zębami - nie można się domyśleć, co tam kombinujesz.
Gallareton
Ad. 1 Wybaczcie, postaram się używać, wiem że to wpływa na przejrzystość kodu
Ad. 2 Normalnie tego nie robię. Tylko kiedy piszę coś dla testu. (a i wtedy nieraz zmieniam dla pewności)
Ad. 3 Przycisk "zostaje przyciśnięty", ale nie wykonuje się kod w nim zawarty... Siłą rzeczy, jeśli printa wpiszę wew. instrukcji if() to nie wyświetli się nic, a wpisanie tego printa w dalszej części kodu zawsze powoduje wyświetlenie "Array ()"
Ad. 4 i 5 Właśnie taką instrukcję wpisałem, uznałem że nie ma sensu wklejenie tego samego co wy, w następnym poście. (oczywiście wciąż nie działa...)

Ma ktoś może jeszcze jakiś pomysł, co jest nie tak?
Pilsener
Pomysłów mam bez liku, ale wolałbym, abyś podał kod - inaczej szansę na to, że mój pomysł okaże się receptą na Twój problem oceniam na +/- 0,5%
Gallareton
  1. <?php
  2. if($rek == 0){
  3.   include('plik.php');
  4. }
  5. else if($rek > 0) {
  6.   echo '<center><form action="" method="post"><input type="submit" value="Zobacz" name="zobacz"></form>' ;
  7. }
  8. if(!empty($_POST['zobacz'])) {
  9.   echo $text;
  10. }
  11. ?>


O to kod, który wciąż nie działa. Wpisywałem tego printa wewnątrz przycisku, ale tak jak nie wyświetliła się zmienna $text, tak i ten print się nie wykonał. Wpisywałem go również z ciekawości za przycisk i pod przyciskiem na stronie widniał napis "Array ()"

Dodam nawet, że wcześniej kod był inny niż pisałem, pod wzgledem zmiennych, nazw, itp. W tej chwili dla sprawdzenia, czy może mieć to jakiś związek z działaniem kodu, wkleiłem dokładnie to co w tym poście i naprawdę nadal nie działa. Poprawcie mnie jeśli się mylę, ale wydaje mi się, że składniowo jest wszystko ok i powinno działać... Ma ktoś jakiś pomysł dlaczego tak nie jest?

Po naciśnięciu przycisku, strona się najzwyczajniej odświeża.
outsider
Sprobuj zamknac inputa:
Kod
<input type="submit" value="Zobacz" name="zobacz" />


@edit

<center> - tego juz sie prawie nie uzywa
Gallareton
Bez zmian

@edit:
Masz na myśli, że używa się <p>, albo <div> i align=""?
nospor
a co to jest ten $text?

  1. <?php
  2. if($rek == 0){
  3.  include('plik.php');
  4. }
  5. else if($rek > 0) {
  6.  echo '<center><form action="" method="post"><input type="submit" value="Zobacz" name="zobacz"></form>' ;
  7. echo $text; //TU SIE WYSWIETLA?
  8. }
  9. if(!empty($_POST['zobacz'])) {
  10.  echo 'DUPA'.$text; //TU SIE WYSWIETLA DUPA A $text NIE? ZNACZY ZE PRZYCISK DZIALA !!!! NIE DZIALA CI $text, BO PEWNIE SKADS INDZIEJ JEST BRANE
  11. }
  12. ?>

Przeczytaj dołaczone kometarze do kodu

edit: a jak DUPA ci sie nie wyswietla, to znaczy ze ten formularz z przyciskiem masz zagniezdzony jeszcze w innym formularzu. Nie mozna zagniezdzac formularzy
Gallareton
W tym else if() wyświetla się zmienna $text; po naciśnięciu przycisku nie wyświetla się napis DUPA, nie możliwe żeby formularz był zagnieżdżony, otworzyłem nawet kod strony, żeby się upewnić, istnieje na niej tylko jeden znacznik <form> i jeden </form>

Powtórzę jeszcze raz pytanie: czy to może być wina mojego komputera/systemu? Nie-działanie tego przycisku jest wbrew logice...
nospor
Cytat
po naciśnięciu przycisku nie wyświetla się napis DUPA

Ok, to zrobmy to od dupy strony winksmiley.jpg
  1. <?php
  2. echo 'dupa testowa';
  3. print_r($_POST);
  4. if(!empty($_POST['zobacz'])) {
  5. echo 'DUPA'.$text;
  6. }
  7. ?>

A co teraz sie wyswietla?

edit: ale chyba juz widze ze wczesniej juz chyba probowales z tym print_r

Cytat
czy to może być wina mojego komputera/systemu
Kod nie ma prawa nie dzialac
Wykonaj tylko i wylacznie taki kod:
  1. <?php
  2. echo '<form action="" method="post"><input type="submit" value="Zobacz" name="zobacz"></form>' ;
  3. if(!empty($_POST['zobacz'])) {
  4. echo 'DUPA';
  5. }
  6. ?>

Tez nie dziala?
Gallareton
"dupa testowaArray ( )", przycisk tak jak nie reagował, tak nie reaguje
nospor
dalem edycje posta poprzedniego. Weź wykonaj tamten kod co podalem, dokladnie taki sam, bez zadnych swoich dodatkow
Gallareton
Właśnie dlatego powiedziałem, że to jest wbrew logice... Usunąłem poprzednie ify i wkleiłem TYLKO TO... wciąż nie działa
nospor
No dobra, format c:/ i zabawa od nowa winksmiley.jpg

Jaki system, jaka przeglądarka (probowales pod jedną czy pod roznymi), jakies firewalle? Masz to gdzies wystawione?
Gallareton
Windows XP SP2. Jest to część większej strony (tej z opisu, tylko pare update'ów dalej), hosuję to Webservem na własnym komputerze. Używam do testów jedynie Opery, bo Mozilla ma problem z wyśietlaniem obrazków, a IE... poprostu nie przepadam za tą przeglądarką winksmiley.jpg Co do firewalla to nie jestem pewien, chyba jest tylko zwykła zapora windowsa.

Właśnie próbowałem zrobić to na IE i nie działa na niej nawet logowanie
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.