Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wywołanie funkcji w formularzu
Forum PHP.pl > Forum > Przedszkole
cent4
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
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
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
  1. <?
  2. function wyslij()
  3. {
  4.  echo "Wypełnij wszystkie pola formularza!";
  5. }
  6.  
  7. if (isset($_POST['submit']))   // gdy kliknięto przycisk to...
  8. {
  9.    wyslij(); // wywołanie funkcji wyslij();
  10. }
  11.  else    // gdy nie kliknięto to pokazanie formularza
  12. {
  13. ?>
  14.  <form method="post" action="">
  15.     <input type="submit" name="submit" value='Wyślij' >
  16.  </form>
  17. <?
  18. }
  19. ?>
nospor
Cytat
A ja nie używam przecież javascript, czy się mylę?
i tak i nie... onsubmit to juz javascript
cent4
Cytat(Kojak @ 24.07.2009, 09:24:11 ) *
  1. <?php
  2. function wyslij()
  3. {
  4.  echo &#092;"Wypełnij wszystkie pola formularza!\";
  5. }
  6.  
  7. if (isset($_POST['submit']))   // gdy kliknięto przycisk to...
  8. {
  9.    wyslij(); // wywołanie funkcji wyslij();
  10. }
  11.  else    // gdy nie kliknięto to pokazanie formularza
  12. {
  13. ?>
  14.  
  15.    
  16.  
  17. }
  18. ?>


Prawie dobrze - tylko przy wejściu na stronę - od razu wyświetla mi się komentarz, a nie formularz sad.gif
nospor
nie ma prawa. Napewno napisales dokladnie jak ci podano? Pokaz swoj kod
cent4
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
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
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!"
b4x
A może tak:

  1. <script type="text/javascript">
  2. function Wyslij() {
  3.  
  4. alert('Wypełnij wszystkie pola formularza!');
  5. document.getElementById('wyslij').style.display = 'block';
  6. return false;
  7.  
  8. }
  9.  
  10. <button type="button" onClick="Wyslij()">Wyślij</button>
  11.  
  12. <div id="wyslij" style="display:none;">
  13. a tutaj wrzuc cos?
  14. </div>
cent4
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
Cytat
Prawie dobrze - tylko przy wejściu na stronę - od razu wyświetla mi się komentarz, a nie formularz sad.gif


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
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
nie dawaj tego w code tylko w php....
Kojak
Zadam głupie pytanie... ten kod wrzucasz do pliku np index.php? I masz postawiony serwer?
Pawel_W
no chyba jak mu wyświetla, to ma w index.php...


sprawdz czy ci wogole zmienne globalne chodza...
cent4
mam serwer i domene, plik wrzucam sobie pod nazwa m.php i tak tez go wywoluje z przegladarki. Kod w php:
  1. <?
  2. function wyslij()
  3. {
  4. echo "Wypełnij wszystkie pola formularza!";
  5. }
  6.  
  7. if (isset($_POST['submit']))   // gdy kliknięto przycisk to...
  8. {
  9.   wyslij(); // wywołanie funkcji wyslij();
  10. }
  11. else    // gdy nie kliknięto to pokazanie formularza
  12. {
  13. ?>
  14. <form method="post" action="">
  15.    <input type="submit" name="submit" value='Wyślij' >
  16. </form>
  17. <?
  18. }
  19. ?>
Pawel_W
  1. <?
  2. function wyslij()
  3. {
  4. echo "Wypełnij wszystkie pola formularza!";
  5. }
  6.  
  7. if (isset($_POST['submit']))   // gdy kliknięto przycisk to...
  8. {
  9.  wyslij(); // wywołanie funkcji wyslij();
  10. }
  11. else    // gdy nie kliknięto to pokazanie formularza
  12. {
  13. ?>
  14. <form method="post" action="m.php">
  15.   <input type="submit" name="submit" value='Wyślij' >
  16. </form>
  17. <?
  18. }
  19. ?>

ale to chyba nie pomoże...
cent4
Nie pomogło - a wam ludziska ten skrypt dziala prawidlowo?

Najpierw przycisk - nacisniecie - i wyskakuje tekst?

Juz trace zmysly :-(
Pawel_W
mówiłem, sprawdź czy wogóle działa $_POST
baszkir
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:
  1. <?
  2. function wyslij()
  3. {
  4. echo "Wypełnij wszystkie pola formularza!";
  5. }
  6.  
  7. if (isset($_POST['submit']))   // gdy kliknięto przycisk to...
  8. {
  9.  wyslij(); // wywołanie funkcji wyslij();
  10. }
  11. // gdy nie kliknięto to pokazanie formularza
  12. //{
  13. ?>
  14. <form method="post" action="">
  15.   <input type="submit" name="submit" value='Wyślij' >
  16. </form>
Kojak
A spróbuj to i podaj co ci wyświetliło Zawartość POST: ...

  1. <?
  2. function wyslij()
  3. {
  4. echo "Wypełnij wszystkie pola formularza!";
  5. }
  6.  
  7. echo "ZAWARTOŚĆ POST: ".print_r($_POST)."<br /><br />";
  8.  
  9. if (isset($_POST['submit']))   // gdy kliknięto przycisk to...
  10. {
  11.  wyslij(); // wywołanie funkcji wyslij();
  12. }
  13. else
  14. {
  15. ?>
  16. <form method="post" action="">
  17.   <input type="submit" name="submit" value='Wyślij' >
  18. </form>
  19. <?
  20. }
  21. ?>


EDIT: poprawiłem ten kod.. uruchom teraz i napisz co wyświetla!
cent4
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.