Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Przekazywanie wartosci
Forum PHP.pl > Forum > Przedszkole
Gwozdyk
Mam pytanie. Do tej pory zawsze przekazywalem wartosc z formulaza za pomoca get lub post i w action dawalem link pliku skryptu ktory mial zostac wykonany. Natomiast nie wiem jak zrobic zeby np po nacisnieciu przycisku albo linku nie przeskoczylo do innego pliku tylko poprstu wykonal sie jakis skrypt na tej samej stronie. Bede wdzieczny za pomoc.
RubiX
Może tak:

  1. <?php
  2. if ($_GET['akcja']=="dodaj") {
  3. // wpisujesz tutaj wpis do sql lub cokolwiek pobierajaz zmienne post
  4. } else {
  5. echo "  <FORM METHOD='POST' action='WPISZNAZWEPLIKU.php?akcja=dodaj'>
  6. //tresc formularza
  7.  </FORM>";
  8. }
  9. ?>


Albo tak:

  1. <?php
  2. extract( $_GET ); 
  3. extract( $_POST ); 
  4.  
  5. if (empty($wykonaj)) { 
  6. echo '<form method="post">
  7. tresc formularza
  8. <input type="submit" name="wykonaj" value="Zapisz"></form>'; 
  9. } else {
  10. //jakies dzialania po przeslaniu formularza np zapis do sql
  11. //inne dane...
  12. }
  13. ?>
anonim1133
Cytat
Natomiast nie wiem jak zrobic zeby np po nacisnieciu przycisku albo linku nie przeskoczylo do innego pliku tylko poprstu wykonal sie jakis skrypt na tej samej stronie.

jeżeli nie chcesz przeładowywać strony to chyba dobrym wyjściem było by zastosowanie AJAX`a ? a od tego tutaj osobny dział jest bodajże:P
RubiX
A no chyba że tak to źle przeczytałem sorki, no to pozostaje AJAX winksmiley.jpg
Gwozdyk
Ja sie zle wyrazilem. W sumie nie chodzi o to zeby nie przeladowywal strony. Tylko zeby drugi raz wyswietlila sie ta sama strona tylko z przekazanymi wartosciami ktore uzytkownik wpisal za 1 razem. W sumie doszedlem do tego ze to nie jest trudne. Poprostu w action formy wpisujemy link do tej samej strony. Niby tak zrobilem ale cos mi nie chce dzialac. To jest strona na ktorej mozna dodac newsa wpisujac jego tresc i autora. Po kliknieciu "wyslij" wywolywana jest ta sama strona tylko tym razem zamiast cos wyswietlic serwer dokona dodania nowego wpisu do pliku. Tylko cos mi niebardzo chodzi. Podejrzewam ze problem jest tutaj:
Kod
if($autor==''||$tekst='')
tylko nie wiem jak to zapisac dokladnie. Jak sprawdzic czy strona zostala wywolana z wartosciami czy bez nich.
  1. class StrAdministracja extends Strona
  2. {
  3. function _construct()
  4. {
  5. $autor=$_POST['autor'];
  6. $tekst=$_POST['tekst'];
  7. }
  8. public function WyswietlZawartosc()
  9. {
  10. if($autor==''||$tekst='')
  11. {
  12. ?>
  13. <form action="administracja.php" method=post>
  14. <p>Dodaj newsa!</p>
  15. <table border="0">
  16. <tr>
  17. <td>Autor</td>
  18. <td align="center"><input type="text" name="autor"></td>
  19. </tr>
  20. <tr>
  21. <td>Tresc</td>
  22. <td align="center"><input type="text" name="tekst"></td>
  23. </tr>
  24. <tr>
  25. <td align="center"><input type="submit" name="Dodaj"></td>
  26. </tr>
  27. </table>
  28. <?php
  29. }else
  30. {
  31. $plik=fopen('nowosci.txt');
  32. $ciag_wejsciowy=$imie.'|'.$tekst."\nr";
  33. fwrite($plik, $ciag_wejsciowy);
  34. fclose($plik);
  35. }
  36. }
  37. }
plurr
  1. strona.php
  2.  
  3. <form action='strona.php' method='post'>
  4. <input type='text' name='text' /> 
  5. <input type='submit' value='wyslij' /> 
  6. </form>
  7.  
  8. <?php 
  9.  
  10. $text = $_POST['text']; 
  11.  
  12. if(!empty($text))
  13. {
  14. echo 'to jest text z formularza: '.$text; 
  15. }
  16.  
  17. ?>


Jesli cos zostalo wpisane w formularzu to wyswietli sie ten tekst pod spodem, jesli nic, to bedzie widoczny tylko formularz. Taka zasade wykorzystaj u siebie smile.gif
RubiX
No to mój kod, który przesłałem też może być bo funkcja wykonuje się na tej samej stronie tylko zostaje ona przeładowana tongue.gif

Nie zrozumieliśmy się smile.gif
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.