Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/MySQL] Wykrycie naciśnięcia przycisku
fuzzy86
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


Witam. Mam bardzo proste pytanie. Nie widzę tego w necie.
Mam tabele która wygląda tak:

id | nazwa | adres | katalog | opis

Ładuję z bazy nazwę (każda jest unikalna więc nie ma problemu dalej) do pola <select>
Chcę zrobić żeby powybraniu danej pozycji z utworzonej tak listy i naciśnięciu przycisku (submita) "usuń" pobrało nazwę i usunęło z bazy danych. W sumie wszystko wiem jak zrobić z wyjątkiem tego jaki dać warunek do naciśnięcia "submita"

Kod do zrobienia listy mam taki:
  1. <?php
  2. $zapytanie = mysql_query("SELECT `nazwa` FROM dane_db");
  3. echo '<form method="POST" action="usun.php">
  4. <select name="nazwy">';
  5.  
  6. while($wiersz=mysql_fetch_array($zapytanie)) {
  7.  echo '<option>'.$wiersz[0].'</option>';
  8. };
  9. echo '</select>
  10. <input type="submit" value="Usuń" name="go">
  11. </form>';
  12. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Chemiq
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 16.07.2006

Ostrzeżenie: (0%)
-----


jeżeli dobrze zrozumiałem kod powinien wyglądać tak:
  1. <?php
  2. $zapytanie = mysql_query("SELECT `nazwa` FROM dane_db");
  3. echo '<form method="POST" action="usun.php">
  4. <select name="nazwy">';
  5.  
  6. while($wiersz=mysql_fetch_array($zapytanie)) {
  7.  echo '<option>'.$wiersz[0].'</option>';
  8. };
  9. echo '</select>
  10. <input type="submit" value="Usuń" name="go">
  11. </form>';
  12.  
  13. $go = $_POST['go'];
  14. if (isset($go)) {
  15. // tutaj wpisz akcję która ma się odbyć po kliknięciu na submit
  16. }
  17. ?>

oczywiście zadziała jeżeli skrypt powyżej nazywa się usun.php (tak jak to zadeklarowałeś w polu action znacznika form). ja używam takiego sposobu i działa bez problemów
Go to the top of the page
+Quote Post
MagnuM
post
Post #3





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Jelenia Góra

Ostrzeżenie: (0%)
-----


Jednak lepiej jest najpierw obsługiwać opcję 'wykrycia' naciśnięcia przycisku, a dopiero później wyświetlać resztę skryptu, ze względu na to, że najpierw wyświetlony skrypt może być nieaktualny w niektórych przypadkach.


--------------------
Go to the top of the page
+Quote Post
fuzzy86
post
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


Cytat(MagnuM @ 5.08.2006, 20:39 ) *
Jednak lepiej jest najpierw obsługiwać opcję 'wykrycia' naciśnięcia przycisku, a dopiero później wyświetlać resztę skryptu, ze względu na to, że najpierw wyświetlony skrypt może być nieaktualny w niektórych przypadkach.


Czyli najpierw dać warunek:
  1. <?php
  2. $go = $_POST['go'];
  3. if (isset($go)) { ... }
  4. ?>

a potem w else reszte kodu czy źle zrozumiałem?? Czy to coś zmienia?? czy źle zrozumiałem?...
Go to the top of the page
+Quote Post
MagnuM
post
Post #5





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Jelenia Góra

Ostrzeżenie: (0%)
-----


Niekoniecznie w else. Jeżeli dasz w else to zadeklarujesz kod, który uruchomi się w przypadku gdy przycisk nie zostanie wciśnięty kolokwialnie mówiąc.

Podam przykład dla lepszego zrozumienia sprawy.

  1. <?php
  2.  
  3. // sprawdza czy 'wciśnięto' submit formularza
  4. if ( $_POST['action'] )
  5. {
  6. mysql_query("INSERT INTO users (login) VALUES('". $_POST['login'] ."')");
  7. }
  8.  
  9. $rQuery("SELECT login FROM users WHERE id = (SELECT MAX(users.id))");
  10. $aAssoc = mysql_fetch_assoc( $rQuery );
  11.  
  12. Ostatni zarejestrowany u&#380;ytkownik: $aAssoc['login']
  13.  
  14. Rejestracja:
  15.  
  16. <form method="post">
  17. Login: <input type="text" name="login"><br />
  18. <input type="submit" name="action" value="Wyślij">
  19. </form>
  20. ?>


W tym przypadku, gdy użytkownik wypełni przykładowy formularz to zaraz po naciśnięciu przycisku wyświetli się 'Ostatni zarejestrowany użytkownik: (wpisany w formularzu login)'.

Jeżeli zaś skrypt wyglądał by następująco:

  1. <?php
  2.  
  3. $rQuery("SELECT login FROM users WHERE id = (SELECT MAX(users.id))");
  4. $aAssoc = mysql_fetch_assoc( $rQuery );
  5.  
  6. Ostatni zarejestrowany u&#380;ytkownik: $aAssoc['login']
  7.  
  8. Rejestracja:
  9.  
  10. <form method="post">
  11. Login: <input type="text" name="login"><br />
  12. <input type="submit" name="action" value="Wyślij">
  13. </form>
  14.  
  15. // sprawdza czy 'wciśnięto' submit formularza
  16. if ( $_POST['action )
  17. {
  18. mysql_query("INSERT INTO users (login) VALUES('". $_POST['login'] "')");
  19. }
  20. ?>


To niestety wyświetlił by się napis, na którego końcu widniał by login poprzsedniej ostatnio zalogowanej osoby.

Jest to tlko przykład pisany z głowy. Myślę, że idea jest zrozumiała, nie sprawdzałem, powinno działać ;-)

EDIT: Czy ten parser kodu aby na pewno dobrze działa ?
EDIT 2: Co jest nie tak z tym parserem. Zaraz po edycji źle interpretuje kod związany z apostrofami i pochodnymi...

Ten post edytował MagnuM 5.08.2006, 21:22:16


--------------------
Go to the top of the page
+Quote Post
fuzzy86
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


Aha. rozumiem. Dzięki za wszytkie odpowiedzi. Jak bym coś jeszcze potrzebował to się tu pojawię winksmiley.jpg
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 12:37