Chyba při ajaxovém volání – error 500 (Internal Server Error)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
PavelN
Člen | 12
+
0
-

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
+
0
-

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
+
0
-

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