Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL] Update rekordu po kliknięciu
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Napisałem sobie mały kodzik, w którym jak widać chodzi o uaktualnienie "typu" i "hasla".
Hasło jest tworzone przez generator.
Dla przejrzystości, ustawiłem zdefiniowane id.
Problem jest następujący. Nie wiem dlaczego, ale aktualizuje mi rekordy już przy otwarciu strony, jej odświeżeniu oraz kliknięciu.
Chciałbym jednak, żeby aktualizowało tylko po kliknięciu, gdyż na stronie będzie kilka takich buttonów (z różnymi id)
Fajniej by było, gdyby przycisk zamienić na tekst "Akceptuj" na marginesie mówiąc (bo ja nie mam pojęcia jak to zrobić) winksmiley.jpg

Poniżej podaje kod:

CODE
<FORM>
<?php

//Generowanie kodu
$dlugoscCiagu=8;
$znaki=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','w','y','z','1','2','3','4','5','6','7','8','9','0');
do
{
$los=rand(1,33);
$dCd.=$znaki[$los];
$i++;
}
while($i<=$dlugoscCiagu);
//Koniec generowania kodu

?>

<INPUT TYPE="submit" VALUE="Edytuj" onClick="
<?php
include_once ("./db_config.php");
$id = 4;
$wynik = mysql_query("UPDATE partnerzy SET haslo='$dCd', typ=1 WHERE id=$id");
?>
">

</FORM>


Z góry dziękuje za pomoc.
wookieb
Ajax... Tematyka znana już nawet góralom, więc materiałow znajdziesz sporo.
Czegoś takiego nie robi się w ten sposób.
d0m1n1k_
Mówisz Ajax... szczerze mówiąc tematykę java && ajax chciałbym ominąć szerokim łukiem.
Chciałbym zostać przy czystym kodzie uzywajacym jedynie PHP i HTML (+MySQL).
Tak wiec nie wiesz co tu jest nie tak?!
wookieb
Cytat
Mówisz Ajax... szczerze mówiąc tematykę java && ajax chciałbym ominąć szerokim łukiem.

Nie da rady, jeżeli chcesz to zrobić bez przeładowania strony. Jeżeli z przeładowaniem to mniej wiecej tak

Kod
onclick="document.location.href=document.location.href+'?dodaj=1';"


a potem w tym skrypcie
  1. <?php
  2. if(isset($_GET['dodaj']) && $_GET['dodaj'])
  3. {
  4. // to co chcesz zrobic
  5. }
  6. ?>


Cytat
Tak wiec nie wiesz co tu jest nie tak?!

Wiem i powiedziałem (!). Robisz wszystko nie tak.
sadistic_son
Jeśli dobrze zrozumiałem to ten formularz przekierowuje spowrotem na tę stronę. I wtedy przycisk, który wcześniej kliknięto ma mieć wartość Akceptuj?! Poraw jeśli źle myśle.

A tak to powinno wyglądać:
  1. <?php
  2. if(isset($_POST['przycisk1'])){
  3. echo'<INPUT TYPE="submit" name="przycisk1" VALUE="Akceptuj" >';
  4. include_once ("./db_config.php");
  5. $id = 4;
  6. $wynik = mysql_query("UPDATE partnerzy SET haslo='$dCd', typ=1 WHERE id=$id");
  7. }
  8. else echo'<INPUT TYPE="submit" name="przycisk1" VALUE="Edytuj" >';
  9. ?>
Oczywiście żeby to działało musisz <FORM> zastąpić <FORM METHOD="POST">
d0m1n1k_
Cytat
Fajniej by było, gdyby przycisk zamienić na tekst "Akceptuj"


Chodzi mi oto aby zastąpić brzydki button ładnym tekstem winksmiley.jpg
Button mimo, że użyje class'y nadal jest brzydkim przyciskiem, zaś hiperłącze nałożone na treść zawsze prezentować się będzie znacznie lepiej.
sadistic_son
W takim razie formularz wysyłaj za pomocą metody "GET". a Zamiast przycisku użyj <a href="strona.php?przycisk=wartosc>Akceptuj</a>. Teraz mozesz sobie <a> dowolnie obrobić np. CSSem.
  1. <?php
  2. <form method=get>
  3. <a href="strona.php?przycisk=wartosc" style="background:red; text-decoration:underline; letter-spacing:2px;">Akceptuj</a>
  4. if(isset($_POST['przycisk1'])){
  5. include_once ("./db_config.php");
  6. $id = 4;
  7. $wynik = mysql_query("UPDATE partnerzy SET haslo='$dCd', typ=1 WHERE id=$id");
  8. }
  9. ?>
ayeo
Witam

Kod
input[type='submit']
{
padding: 5px;
border: none;
background: grey;
color: black;
}


Pozdrawiam!

PS Nie działa to na IE6 (trzeba dodać dodatkową klasę)
d0m1n1k_
Cytat(sadistic_son @ 19.07.2009, 16:43:36 ) *
Jeśli dobrze zrozumiałem to ten formularz przekierowuje spowrotem na tę stronę. I wtedy przycisk, który wcześniej kliknięto ma mieć wartość Akceptuj?! Poraw jeśli źle myśle.

A tak to powinno wyglądać:
  1. <?php
  2. if(isset($_POST['przycisk1'])){
  3. echo'<INPUT TYPE="submit" name="przycisk1" VALUE="Akceptuj" >';
  4. include_once ("./db_config.php");
  5. $id = 4;
  6. $wynik = mysql_query("UPDATE partnerzy SET haslo='$dCd', typ=1 WHERE id=$id");
  7. }
  8. else echo'<INPUT TYPE="submit" name="przycisk1" VALUE="Edytuj" >';
  9. ?>
Oczywiście żeby to działało musisz <FORM> zastąpić <FORM METHOD="POST">


Dzięki wielkie. Zostanę chyba przy tym (fajny efekt ze zmianą value przycisku nie wpadł bym na to winksmiley.jpg )
Pozdrawiam
sadistic_son
Spoko, ciesze sie ze pomoglem ale mozna to zrobic jeszcze troszke inaczej aby zaoszczedzic nieco kodu:
  1. <?php
  2. if(isset($_POST['przycisk1'])){
  3. $value='Akceptuj';
  4. include_once ("./db_config.php");
  5. $id = 4;
  6. $wynik = mysql_query("UPDATE partnerzy SET haslo='$dCd', typ=1 WHERE id=$id");
  7. }
  8. else {$value='edytuj';}
  9. echo '<INPUT TYPE="submit" name="przycisk1" VALUE="'.$value.'" >';
  10. ?>
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.