Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z formularzem
Forum PHP.pl > Forum > PHP > Object-oriented programming
meg_eho
Najpierw może kod, później pytania.
Kod
if($_SESSION['uwierz_uzyt'])

{

echo "<h3>Katalog:</h3>";

echo "<div style=\"width: 370px; margin: auto; text-align: left;\">

<form method=\"post\" action=\"kat_edit.php\"enctype=\"multipart/form-data\">";


while ($wers = mysql_fetch_assoc($kat))

{

echo "<input type=\"radio\" method=\"post\" name=\"row\" value=\"{$wers['kid']}\"/>{$wers['tytul']}<br>";

}

echo "<br><input type=\"submit\" name=\"katadd\" value=\"Dodaj\">&nbsp;&nbsp;<input type=\"button\" name=\"katdel\" value=\"Usuń\">&nbsp;&nbsp;<input type=\"submit\" name=\"kated\"value=\"Edycja\">";

mysql_free_result($kat);

echo "</form><div>";

}

echo '<br><br><a href="index.php">Wstecz';

if (isset($_POST['katdel']))

{

$row = $_POST['row'];

$this->kat_del($row);

}

"Usuń" działa, "Dodaj" i "Edytuj" przez action przenoszą mnie do Kat_edit.php, które wygląda tak:



Kod
<h1>Kategorie</h1>

<?php

$katedit = new Katalog;


if (isset($_POST['katadd']))

{

$katedit ->kat_add_ed($row);

exit;

}

if (isset($_POST['kated']))

{

$row = $_POST['row'];

if(!empty($row))

{

$katedit ->kat_add_ed($row);

}

else

{

echo "Proszę wrócić i zaznaczyć link do edycji.";

echo "<br><br><a href=\"index.php\">Wstecz";

}

}

funkcja kat_add_ed() wygląda tak:



Kod
public function kat_add_ed($row)
{

if($_SESSION['uwierz_uzyt'])
{
$this -> lacz_bd();
$katsql = mysql_query("select tytul from katalog where kid = '$row'");
$rowe = mysql_fetch_assoc($katsql);
echo "<form method=\"post\" enctype=\"multipart/form-data\">";?>
<table style="margin: 0 auto;" width="340" cellpadding="8" bgcolor=#cb0000 border="1" frame="box" rules="none">
<tr>
<td>Nazwa:</td>
<td><input size="80" name="tytul" value="<?php echo $rowe['tytul'];?>"></td>
</tr
<tr>
<td colspan=2 align=center>
<input type="button" name="go" value="Wysłanie"></td>
</tr>
</table>
</form>
<?php
mysql_free_result($katsql);
echo "<a href=\"index.php\">Wstecz";
}
if (isset($_POST['go']))
{
$this->kat_sent($row);
}
}

I tu pojawia się problem bo przycisk "Wysłanie" nie działa wogóle. Gdy zamiast "button" ustawię "submit" działa jak action z formularza z którego dane zostały przesłane. Jak to rozwiązać?
Dodam, że chcę uniknąć js.
okitoki
Na wstępie, twój kod to koszmar smile.gif , jest mało czytelny, i mieszasz html-a z PHP, zły nawyk, przy wielkich projektach się zgubisz we własnym kodzie.

jeżeli chcesz by zadziałał ci przycisk button to dodaj mu zdarzenie onclick="document.nazwaformularza.submit(); ", js nie ominiesz, chyba że zmienisz właściwość input z button na submit

pozdrawiam Paweł
meg_eho
Że kod to koszmar-właśnie wczoraj już ktoś mnie uswiadomił. Popracuję nad tym. Co do "submit" to też źle działa (jak już pisałam). A co do html to ogólnie rozdzielam wszędzie gdzie się da. Czasem jednak trzeba tak a nie inaczej. Dzięki za radę.
P.S. Prędzej cały projekt zmienię, niż js użyję. smile.gif
okitoki
smile.gif twoja wola, a co do htmla ja używam smarty, pozwala na dokładne oddzielenie tego co widać od tego jak działa strona. kod staje się czysty i czytelny, ty widzę że jeszcze nie używasz wcięć na blokach {}, albo tak ci się to skopiowało


jak masz kod
Kod
function .......
{
if .....
{
......
}
......
}

przy dłuższym kodzie się zgubisz. a jak tworzysz wcięcia to wygląda to potem tak :
Kod
function .......
  {
    if .....
     {
      ......
     }
    ......
  }
meg_eho
Kod porządkuje mi eclipse smile.gif ...poprostu źle wkleiłam. Co do Smarty, to najpierw PHP chcę lepiej poznać, uczę się dopiero.

Wracając do mojego problemu, to tak roboczo: pierwszy formularz (nazwę go formularz1) metodą post poprzez action przekazuje zmienne do innego pliku, który sprawdza czy został użyty wcześniej przycisk "Dodaj" czy "Edytuj", dalej przekazuje je spowrotem do pierwszego pliku do określonej funkcji, w której jest formularz2, zaś jego zadaniem jest wysłanie zawartości do bazy. Ale przycisk jako button nie działa wcale zaś jako submit działa jak action z formularza1 ale nie przekazuje zmiennych i wyświetla się pusta strona.
Wiem, wiem...zagmatwane jak mój kod. rolleyes.gif

Mam już podobnie rozwiązane projekty z tą różnicą, że zamiast formularza1 mam a href'y przekazujące zmienne przez _GET i wszystko działa.
No a teraz uparłam się na ten pierwszy formularz, bo chcę mieć listę wyboru radio. Co tu nie działa?
Czytałam coś o zagnierzdżeniu formularzy, ale nie wiem czy to u mnie występuje.

Mój problem polegał na gubieniu zasięgu przez zmienne i złych warunkach if.
Kodu jest dużo (a mój kod to nadal koszmar rolleyes.gif ) więc go nie wstawiam.

Dziękuję za zainteresowanie.
Temat do zamknięcia.
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.