cent4
24.07.2009, 09:14:31
Witam.
Mam taką treść strony:
<html>
<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!";
}
?>
<form method="post" onsubmit="<?wyslij();?>">
<input type="submit" name="submit" value='Wy¶lij' >
</form>
</html>
Banalny formularz, który po naciśnięciu przycisku powinien wywołać funkcję wyslij().
Nie działa taka obsługa przycisku. Natomiast gdy poniżej napiszę <?wyslij();?> program mi wypisuje mój komentarz.
Jak prawidłowo obsłużyć naciśnięcie przycisku formularza?
nospor
24.07.2009, 09:17:19
w javascript probujesz wywolac metode z php. Nie da sie.
uzywaj bbcode
ps:<form method="post" onsubmit="<?wyslij();?>">
podejrzyj sobie źrodlo strony a zobaczysz co masz w onsubmit="...."
cent4
24.07.2009, 09:23:35
Cytat(nospor @ 24.07.2009, 09:17:19 )

w javascript probujesz wywolac metode z php. Nie da sie.
uzywaj bbcode
ps:<form method="post" onsubmit="<?wyslij();?>">
podejrzyj sobie źrodlo strony a zobaczysz co masz w onsubmit="...."
No właśnie w onsubmit mam - onsubmit="Wypełnij wszystkie pola formularza!"
tylko nie chce tego wypisac.
A ja nie używam przecież javascript, czy się mylę?
Kojak
24.07.2009, 09:24:11
<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!"; }
if (isset($_POST['submit'])) // gdy kliknięto przycisk to... {
wyslij(); // wywołanie funkcji wyslij();
}
else // gdy nie kliknięto to pokazanie formularza
{
?>
<form method="post" action="">
<input type="submit" name="submit" value='Wyślij' >
</form>
<?
}
?>
nospor
24.07.2009, 09:26:57
Cytat
A ja nie używam przecież javascript, czy się mylę?
i tak i nie... onsubmit to juz javascript
cent4
24.07.2009, 09:35:14
Cytat(Kojak @ 24.07.2009, 09:24:11 )

<?php
function wyslij()
{
echo \"Wypełnij wszystkie pola formularza!\"; }
if (isset($_POST['submit'])) // gdy kliknięto przycisk to... {
wyslij(); // wywołanie funkcji wyslij();
}
else // gdy nie kliknięto to pokazanie formularza
{
?>
}
?>
Prawie dobrze - tylko przy wejściu na stronę - od razu wyświetla mi się komentarz, a nie formularz
nospor
24.07.2009, 09:36:13
nie ma prawa. Napewno napisales dokladnie jak ci podano? Pokaz swoj kod
cent4
24.07.2009, 09:40:45
Kod
<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!";
}
if (isset($_POST['submit'])) // gdy kliknięto przycisk to...
{
wyslij(); // wywołanie funkcji wyslij();
}
else // gdy nie kliknięto to pokazanie formularza
{
?>
<form method="post" action="">
<input type="submit" name="submit" value='Wyślij' >
</form>
<?
}
?>
nospor
24.07.2009, 09:43:47
no i nadal twoj opis bledy nie pasuje do kodu co podales...
Cytat
od razu wyświetla mi się komentarz, a nie formularz
A moze miales na mysli: po wcisnietu guziczka, wyswietla sie sam komentarz, bez formularza?
uzywaj poprawne bbcode
cent4
24.07.2009, 09:46:49
dokładnie - ma sie najpierw pokazac formularz (w tym przypadku - guzik), a po jego nacisnieciu ma byc widoczny napis z funkcji: "Wypełnij wszystkie pola formularza!"
A może tak:
<script type="text/javascript"> function Wyslij() {
alert('Wypełnij wszystkie pola formularza!');
document.getElementById('wyslij').style.display = 'block';
return false;
}
<div id="wyslij" style="display:none;"> a tutaj wrzuc cos?
cent4
24.07.2009, 09:56:18
Nie moge tak zrobic - to musi byc oparte na PHP, bo chodzi mi o inną funkcje. Taka dalem dla przykladu, zeby nie zamieszczac jakiegos wielkiego kodu :-)
Kojak
24.07.2009, 10:00:08
Cytat
Prawie dobrze - tylko przy wejściu na stronę - od razu wyświetla mi się komentarz, a nie formularz

Nie wiem jakim cudem ci wyświetla od razu komunikat jak to na pewno działa. Mi wyświetla najpierw formularz, a po kliknięciu dopiero komunikat.
cent4
24.07.2009, 10:11:49
Niemożliwe, że wam to działa - co w takim razie jest źle?
jeszcze raz daję kod:
Kod
<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!";
}
if (isset($_POST['submit'])) // gdy kliknięto przycisk to...
{
wyslij(); // wywołanie funkcji wyslij();
}
else // gdy nie kliknięto to pokazanie formularza
{
?>
<form method="post" action="">
<input type="submit" name="submit" value='Wyślij' >
</form>
<?
}
?>
Pawel_W
24.07.2009, 10:17:42
nie dawaj tego w code tylko w php....
Kojak
24.07.2009, 10:19:49
Zadam głupie pytanie... ten kod wrzucasz do pliku np index.php? I masz postawiony serwer?
Pawel_W
24.07.2009, 10:22:34
no chyba jak mu wyświetla, to ma w index.php...
sprawdz czy ci wogole zmienne globalne chodza...
cent4
24.07.2009, 10:24:54
mam serwer i domene, plik wrzucam sobie pod nazwa m.php i tak tez go wywoluje z przegladarki. Kod w php:
<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!"; }
if (isset($_POST['submit'])) // gdy kliknięto przycisk to... {
wyslij(); // wywołanie funkcji wyslij();
}
else // gdy nie kliknięto to pokazanie formularza
{
?>
<form method="post" action="">
<input type="submit" name="submit" value='Wyślij' >
</form>
<?
}
?>
Pawel_W
24.07.2009, 10:27:13
<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!"; }
if (isset($_POST['submit'])) // gdy kliknięto przycisk to... {
wyslij(); // wywołanie funkcji wyslij();
}
else // gdy nie kliknięto to pokazanie formularza
{
?>
<form method="post" action="m.php">
<input type="submit" name="submit" value='Wyślij' >
</form>
<?
}
?>
ale to chyba nie pomoże...
cent4
24.07.2009, 10:34:44
Nie pomogło - a wam ludziska ten skrypt dziala prawidlowo?
Najpierw przycisk - nacisniecie - i wyskakuje tekst?
Juz trace zmysly :-(
Pawel_W
24.07.2009, 10:37:08
mówiłem, sprawdź czy wogóle działa $_POST
baszkir
24.07.2009, 10:39:37
Działa dokładnie tak jak ma działać - najpier jest sam przycisk, jak wciśniesz to pojawia się sam napis.
A może Tobie chodziło o to, że po naciśnięciu submita ma się wyświetlić napis i jeszcze raz ten formularz ?. Jeżeli tak to po postu wyrzuć "niepotrzebne" linie:
<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!"; }
if (isset($_POST['submit'])) // gdy kliknięto przycisk to... {
wyslij(); // wywołanie funkcji wyslij();
}
// gdy nie kliknięto to pokazanie formularza
//{
?>
<form method="post" action="">
<input type="submit" name="submit" value='Wyślij' >
</form>
Kojak
24.07.2009, 10:45:58
A spróbuj to i podaj co ci wyświetliło
Zawartość POST: ...<?
function wyslij()
{
echo "Wypełnij wszystkie pola formularza!"; }
echo "ZAWARTOŚĆ POST: ".print_r($_POST)."<br /><br />";
if (isset($_POST['submit'])) // gdy kliknięto przycisk to... {
wyslij(); // wywołanie funkcji wyslij();
}
else
{
?>
<form method="post" action="">
<input type="submit" name="submit" value='Wyślij' >
</form>
<?
}
?>
EDIT: poprawiłem ten kod.. uruchom teraz i napisz co wyświetla!
cent4
24.07.2009, 10:47:11
chodzi mi o taka sytuacje:
jest przycisk submit - naciskam i mam napis
dziekuje za uwage.
A jak tylko odswiezam strone - to od razu mam napis i pod nim przycisk submit. - That is Wrong.
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.