$.post("/pulpit/web/app_dev.php/page/change", { 'tab[]': tab }, function(data) { alert(data); }, 'json' );
który odwołuje się do metody w Symfony2
/** * * @Route("/change", name="change") * @Template() * @Secure(roles="ROLE_USER") */ public function changeAction() { $response = new Response(); $response->headers->set('Content-type', 'application/json, text/javascript,'); }
wywołującej twiga z takim kodem:
{odp:{{ odp }}}
Wszystko działa prawie ok, otrzymuje JSONa ale funkcja w Ajaxie nie wywołuje alertu tak jak by nie bylo 'data'.
Co może być przyczyną, albo co robię nie tam
--------------------------------------------------------------------------------------------------------------------
Problem udało mi się rozwiązać zamieszczę go może komuś się kiedyś przyda.
Kod Ajaxa podobny do przedniego tylko nie przesyłam tablicy a pojedynczą zmienna:
$.post("/pulpit/web/app_dev.php/page/change", { name: 'Jan' }, function(data) { alert(data.name); }, 'json' );
A w kontrolerze wystarczyło zrobić coś takiego:
use Symfony\Component\HttpFoundation\Response; /** * Page controller. * * @Route("/page") */ class PageController extends Controller { /** * * @Route("/change", name="change") * @Template() * @Secure(roles="ROLE_USER") */ public function changeAction() { } }
Twig w tym przypadku jest zbędny.