Vypnutí buttonu podle stavu položky v databazi(podminka)
- Koupilsemto
- Člen | 38
Zdravím, už několik hodin se mi nedaří vypnout button pokud je
stav knihy v databázi = ‚Rezervováno‘.
Zobrazuji přehled knih kde je stav zda je dostupná, rezervovaná atd. a chtěl
bych vypnout tlačítko pokud bude stav „Rezervováno“. Knihy zobrazuji
pomoci cyklu a u každé položky zobrazuji button „rezervovatbtn“.
Lattle
<tr n:foreach="$knihy as $book" class="articles">
<td>{$book->stav}</td>
<td>
<button class="rezervovatbtn" n:if="$user->loggedIn">
<a n:href="Post:rezerve $book->ID">Rezervovat</a>
</button>
</td>
</tr>
Zde je připadně presenter
public function renderDefault($strana = 1) {
$this->template->strana = $strana;
$lastPage = 0;
$knihy = $this->database->table('v_knihy')
->where('`prace` IS NOT NULL')
->order('datumpridani DESC')
->page($strana, 15, $lastPage);
$this->template->lastPage = $lastPage;
$search = $this->getRequest()->getParameter('search');
if ($search) {
$knihy->where('search LIKE ?', '%'.$search.'%');
}
$this->template->knihy = $knihy;
}
Za případné odpovědi díky.
- Koupilsemto
- Člen | 38
WoW, tak to je husté že to jde v Nette takto pěkně udělat díky. Já se
pokoušel o škaredé věci :D ale tohle vážně pěkné.
Jinak kdy použit button a kdy ne moc nevím dávám ho v podstatě všude kde
chci aby se provedl post atd. Možná by to bylo lepši přes
<a><a/>? Jak používáš buttony ty?
- Koupilsemto
- Člen | 38
Promin nevšiml jsem si odpovědi. Odkaz mám uvnitř buttonu protože když si ten post dam
<button n:href="Post:rezerve $book->ID">
Tak mi to vůbec nefunguje. Ještě jsem nepřišel nato proč mi to tělá
<a n:href="Post:rezerve $book->ID">
Problém je pak že mi zase nejde n:attr="disabled jelikož tam mám ten <a> a nevím jak znepřístupnit tenhle element :(
Editoval Koupilsemto (18. 5. 2018 17:54)
- Koupilsemto
- Člen | 38
Žádný formulář jen get. Po kliknutí se pouze vloží log a update do databáze.
I když je to mimo topic nevěděl bys jak přepsat tento sql dotaz SELECT * FROM log WHERE date > (NOW() – INTERVAL 7 DAY) do podmínky?
->where('date >= ?', date('Y-m-d'))
Když se o to pokouším dostávám neustále chybu syntaxe nebo to zapíšu tak že ta podmínka to úplně ignoruje.
Editoval Koupilsemto (18. 5. 2018 19:21)
- Phalanx
- Člen | 310
Píšu teď z hlavy, takže to ber spíš jako inspiraci.
<?php
$date = new DateTime("-7 days");
$result = $this->database->table('log')->where('date >= ?', $date->format('Y-m-d'))->fetchAll();
?>
Dej si pozor, date je klíčové slovo v MySQL, takže je možné, že budeš muset escapovat:
<?php
$date = new DateTime("-7 days");
$result = $this->database->table('log')->where('`date` >= ?', $date->format('Y-m-d'))->fetchAll();
?>