Ahoj, chtěl bych poprosit o radu. Ani ne tak s funkčností jako se
správným objektovým zápisem, o co jde:
Jedná se o formulář, kterým aktualizuji již existující data v
databázi.
O co mi jde konkrétně je to, jakým způsobem správně zobrazit existující
data ve formulářových prvcích.
Postup je takovýto:
Ve výpise dat z databáze (tabulkově) kliknu u nějakého záznamu na
upravit -> odkaz s parametrem ?id=1 například, skriptem se přenese ono id
záznamu.
Zobrazí se formulář, kde se do políček přenesou hodnoty z databáze
podle id, klasika.
Jak jsem psal na začátku, jde mi o použití správného postupu, zde ona
část kódu:
class Config
{
public$jmeno;
publicfunction __construct() { //Připojení k databázi }// Tohle je důležitépublicfunction getDataById($id)
{
$select = $this->pdo->prepare("SELECT * FROM tabulka WHERE id = $id");
$select->execute();
$row = $select->fetch(PDO::FETCH_ASSOC);
$this->name = $row['name'];
}
}
// Soubor s formulářem$config = new Config;
$config->getDataById($_GET['id']);
..
// Zde je formulář
<input type="text" name="jmeno" value="<?= $config->name; ?>
Je to funkční řešení, ale podle mě je to děsně prasácký hlavně
kvůli použití veřejné proměnné name a přímému odkazování na ní ve
formu.
Jedná se zde jen o úryvek kódu.
Věděl by někdo alespon náznakem o elegantnějším řešení? Budu
vděčný za každou radu
Napadlo mě ještě tohle:
Každá hodnota z databáze co se vkládá do formu by měla vlastní metodu
co jí vrací tzn něco jako:
public function getName()
{
return $this->name;
}
a pak
<input type="text" value="<?= $config->getName(); ?>">
Celý formulář vypisovat pomocí php kódu přímo ve funkci
Všechna 3 řešení se mi zdají strašně těžkopádná, bohužel nám na
škole tlučou do hlavy proceduální programování v PHP, takže přechod na
OOP sebou nese tato úskalí
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.