Chyba při ajaxovém volání – error 500 (Internal Server Error)
- PavelN
- Člen | 12
Dobrý den,
snažím se pomocí ajaxu zavolat sql dotaz a poté předat proměnou
s výsledkem šabloně.
Šablona
{block content}
<div>
<H2>Aktuální košík</H2>
<a n:href="Basket:default">Košík</a><br>
Cena:{snippet price}{$basket_price}{/snippet}<br>
</div>
{foreach $products as $product}
<H2 class="">{$product->title}</H2>
Cena:{$product->price}<br><br><br>
<a class="ajax" n:href="add! $product->id_product">Přidat do košíku</a>
{/foreach}
{/block}
Presenter, metoda handleAdd
<?php
public function handleAdd($id)
{
$tmp = $this->database->CountItems(1);
if($tmp['count'] == 0)
{
$this->database->insertItem($id);
} else {
$this->database->addItem($id);
}
$this->redrawControl();
}
?>
Import scriptů
{block scripts}
<script src="{$basePath}/js/jquery.js"></script>
<script src="{$basePath}/js/main.js"></script>
<script src="{$basePath}/js/nette.ajax.js"></script>
{/block}
Při kliknutí na přidání, se mi ukáže v konzoli chyba: GET …sandbox/www/homepage/default/2?do=add 500 (Internal Server Error) jquery.js:4
Předem děkuji za odpověď.
- Oli
- Člen | 1215
Ve složce log budeš mít laděnku s popisem co je špatně. Takhle se špatně radí :-)
Nicméně ještě nedělá dobrotu, když máš u akce i u handle stejnej název proměnný. Ona to potom routa může špatně rozpoznat, tak jestli tam máš nějaký actionDetault($id), tak to může být možná taky tím… Každopádně laděnka napoví.
- jiri.pudil
- Nette Blogger | 1032
Nette v ajaxových požadavcích při chybě posílá hlavičku
X-Nette-Error-Log
s cestou k laděnce a pokud si nastavíš
$browser
, rovnou ti ji v něm otevře:
debugger:
browser: google-chrome