Akcja do Button

Odpowiedz Nowy wątek
2011-10-02 12:18
0

Witam .
mam problem z którym męczę się od rana . Otóż dane mi było zrobić mały programik w PHp na Klasach i zawiesiłem się w najmniej oczekiwanym przeze mnie momencie . Otóż :


echo '<form action=" $objPrzyklad->pokaz($parm)">
<input type="button" value=" Pokaz ">
</form>'

Nurtuje mnie ten fragment Kodu . A właściwie fragment dodania akcji .
Otóż chce by wywołanie funkcji " $objPrzyklad->pokaz($parm)" odbyło się poprzez przyciśnięcie przycisku a nie wywołania go w kodzie .Fragment funkcji działa Normalnie jeśli wpisuję go ręcznie ;] a nie mogę poradzić sobie z przestawieniem tego na przycisk ;] ( Na stornie ukazuje się przycisk lecz nie ma akcji ;])
reszta kodu działa normalnie bo sprawdzane parę razy tylko problem ze nie mam pojęcia jak to wywołanie Funkcji umieścić na przycisk . Próbowałem na różne sposoby i wszelkie próby kończyły się fiaskiem ;] z góry dziękuje za pomoc ;]

edytowany 1x, ostatnio: bohus, 2011-10-02 12:26

Pozostało 580 znaków

2011-10-02 12:36
0

AJAX

Chociaż sam nie wiem czy zrozumiałem o co ci chodzi i masz błąd

echo '<form action="'.$objPrzyklad->pokaz($parm).'">
<input type="button" value=" Pokaz ">
</form>'
edytowany 2x, ostatnio: konrados, 2011-10-02 12:38

Pozostało 580 znaków

2011-10-02 12:43
0

Ech...
PHP jest wykonywane po stronie SERWERA
JavaScript po stronie KLIENTA
Musiałbyś zrobić coś takiego:

<form action="skrypt.php">

Pokombinuj.


zależy co on tutaj $objPrzyklad->pokaz($parm) trzyma :P No i co on chce tym osiągnąć, bo dla mnie to dość dziwne - konrados 2011-10-02 13:05

Pozostało 580 znaków

2011-10-05 12:24
0

Kawałek kodu, który podał autor jest semantycznie poprawny (o ile nie zapomni średnika na końcu tego 'echo') - php dopuszcza umieszczanie zmiennych w środku stringa.
Powodem dlaczego ten kod "nie działa" jest to, że kliknięcie na "button" dla formularza nie powoduje akcji "submit" tego formularza, chyba że zostało to okodowane w skryptach po stronie klienta (np JavaScript).

Rozwiązanie: albo okoduj akcję kliknięcia w input "button" albo użyj input "submit".

Pozostało 580 znaków

2011-10-05 14:59
0

^ źle gadasz :P

zobacz różnice między

$a = 'sss';
echo '$a';

a

$a = 'sss';
echo "$a";
/facepalm, racja - marcinsvr 2011-10-05 21:27

Pozostało 580 znaków

2011-10-05 16:01
0
konrados napisał(a)

^ źle gadasz :P

zobacz różnice między

$a = 'sss';
echo '$a';

a

$a = 'sss';
echo "$a";

Ja znam! To drugie to ZUO WCIELONE. Zmienne można zagnieżdżać w stringu double-quoted, ale jest na to więcej wyjątków i reguł niż w języku polskim. Zacznijcie normalnie umieszczać zmienne:

$a = 'tekst ' . $zmienna . ' tekst';

Sposób uniwersalny i działa przy wszystkim - zmienne, wyniki funkcji, tablice wielowymiarowe. Przy zagnieżdżaniu w double stringu:

// umieścisz zawartość pola z tablicy jednowymiarowej indeksowanej stringiem, ale używając zapisu który nie jest poprawny nigdzie indziej:
$x = "tekst $tab[costam] tekst";
// nie umieścisz zawartości pola z tablicy wielowymiarowej jeśli nie użyjesz klamerek, zamiast tego dostaniesz piękny WTF
$x = "tekst $tab[0][2] tekst"; // wynik: tekst Array[2] tekst
// nie umieścisz wyniku z funkcji:
$x = "tekst {abs(2)} tekst";

Wiele innych ciekawych cyrków również przewidywane. I tak, uprzedzam sprzeciw masochistów: Sposób z osadzaniem zmiennych w stringach jest szybszy o kilka nanosekund - jeśli ktoś wierzy że ma to jakikolwiek zauważalny wpływ na szybkość działania aplikacji to gratuluję.


Women were the reason I became a monk - and, ah, the reason I switched back...
edytowany 1x, ostatnio: Demonical Monk, 2011-10-05 16:04
Nie chodziło mi o to, żeby używać "$zmienna" tylko pokazać, że kod autora tematu jest błędny :P - konrados 2011-10-05 16:45

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0