Skip to content

Commit

Permalink
Add info - creating ajax request in the browser (#990)
Browse files Browse the repository at this point in the history
  • Loading branch information
mildabre authored and dg committed Apr 8, 2023
1 parent 4d86b67 commit 9e7e74b
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion application/cs/ajax.texy
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,14 @@ Moderní webové aplikace dnes běží napůl na serveru, napůl v prohlížeči

</div>

AJAXový požadavek lze detekovat metodou služby [zapouzdřující HTTP požadavek |http:request] `$httpRequest->isAjax()` (detekuje podle HTTP hlavičky `X-Requested-With`). Uvnitř presenteru je k dispozici "zkratka" v podobě metody `$this->isAjax()`.

AJAXový požadavek
=================

AJAXový požadavek se nijak neliší od klasického požadavku - je zavolán presenter s určitým view a parametry. Je také věcí presenteru, jak bude na něj reagovat: může použít vlastní rutinu, která vrátí nějaký fragment HTML kódu (HTML snippet), XML dokument, JSON objekt nebo kód v JavaScriptu.

Na straně serveru lze AJAXový požadavek detekovat metodou služby [zapouzdřující HTTP požadavek |http:request] `$httpRequest->isAjax()` (detekuje podle HTTP hlavičky `X-Requested-With`). Uvnitř presenteru je k dispozici "zkratka" v podobě metody `$this->isAjax()`.

Pro odesílání dat prohlížeči ve formátu JSON lze využít předpřipravený objekt `payload`:

```php
Expand Down Expand Up @@ -60,6 +64,21 @@ npm install naja
<script src="https://unpkg.com/naja@2/dist/Naja.min.js"></script>
```

Aby se z obyčejného odkazu nebo formuláře vytvořil AJAXový požadavek, stačí označit příslušný odkaz, formulář nebo tlačítko třídou `ajax`:

```html
<a n:href="go!" class="ajax">Go</a>

<form n:name="form" class="ajax">
<input n:name="submit">
</form>

// nebo
<form n:name="form">
<input n:name="submit" class="ajax">
</form>
```


Snippety
========
Expand Down

0 comments on commit 9e7e74b

Please sign in to comment.