$form → addSubmit (‚send‘,‚ulozit clanok‘); nic nevykona

chiquitin
Člen | 9
+
0
-
<?php


namespace App\Presenters ;

use Nette;

use Nette\Application\UI\Form;


Class PostPresenter extends Nette\Application\UI\Presenter{
    private $database;



    public function __construct(Nette\Database\Context $database){


        $this->database = $database;
    }

    public function renderShow (int $postId):void
    {
        $post =$this->database->table('posts')->get($postId);
        if(!$post)
            $this->error('stranka sa nenasla');
        $this->template->post=$post;

        $this->template->post = $post;
        $this->template->comments = $post->related('comment')->order('created_at');
    }



    protected function createComponentCommentForm(): Form
    {  $form = new Form;

    $form -> addText('name','Meno')
          -> setRequired();
    $form -> addEmail('email','Email');
    $form -> addTextArea('content','Komentar')
          -> setRequired();
          $form -> addSubmit ('send','Publikovat komentar');


          $form->onSuccess[] = [$this,'commentFormSucceeded'];


          return $form;

    }

    public function commentFormSucceeded(Form $form, \stdClass $values): void
    {
        $postId = $this->getParameter('postId');



        $this->database->table('comments')->insert([
            'post_id' => $postId,
            'name' => $values->name,
            'email' => $values->email,
            'content' => $values->content
        ]);

        $this->flashMessage('dakujjem za komentar', 'success');
        $this->redirect('this');
    }

    protected function createComponentPostForm(): Form
    {
        $form=new Form;
        $form-> addText ('title','Titulok')
           ->setRequired();
        $form -> addText ('content','Obsah')
           ->setRequired();

           $form -> addSubmit ('send','ulozit clanok');
           $form->onSuccess[] = [$this, 'postFormSucceeded'];
           return $form;
        }


        public function postFormSucceeded ( Form $form, \stdClass $values) :void
        {

            $post= $this->database->table('posts')->insert([
                'title' => $values->title,
                'content' => $values->content]);

           $this->flashMessage('Publikovane.', 'success');
            $this->redirect('show',$post->id);


        }


}

Zdravim $form → addSubmit (‚send‘,‚ulozit clanok‘); vyzera ze nic nerobi. nevyhadzuje ani ziadny error. Formular na pridavanie sa mi zobrazi a zj ho vyplnim len po kliku na "ulozit clanok sa nic nestane. Dakujem za rady

Ondřej Kubíček
Člen | 494
+
0
-

nic se nestane jakože se form z prohlížeče ani neodešleš? nebo odešle ale na serveru se nic nestane? v prvním případě zkontroluj jestli javascriptem neodchytáváš submit, ve druhém se to debugni a podívej se kde co se stane…

Nezmo
Člen | 7
+
+2
-

Měl jsem podobný problém.
Zkus se podívat, jestli máš vykreslený formulář správně v šabloně.
Problém byl v tom, že jsem měl buď špatně uzavřený formulář nebo jsem tam někde zapomněl nějaký tag navíc.
Příklad:
<form name='formular'>
<input type="text" />
<form> ← Chyba
</form>

chiquitin
Člen | 9
+
0
-

No zatial si s tym neviem rady, ako uvidim ci odchytavam java scriptom submit res ako to vypnem?. tagy
su ok

chiquitin
Člen | 9
+
0
-

Este nechapem preco ten comentForm ide a tento postForm nie.

chiquitin
Člen | 9
+
0
-

ok tak nekoniec bol problem opat raz medzi stolickou a klavesnicou. Bol to tag nevidel som to. moja chyba