Chcę wprowadzane w input dane przesłać do kontrolera i wydrukować zawartość na nowej stronie.
Skrypt JS
<script type='text/javascript'> function myFunction() { var data = []; var elementy = document.getElementsByClassName('inputISBN'); for (var i = 0; i < elementy.length; i++){ data[elementy[i].getAttribute('name')] = elementy[i].getAttribute('value'); } $.ajax({ url: "{{ path('test') }}", type: "POST", data: data , {# data: { "tablica" : tablica },#} success: function() { alert("ok"); } }); } </script>
Formularz twig.html
akcja w kontrolerze, która ma utworzyć zmienną sesji o zawartości pobranej z formularza.
/** * test. * * @Route("/test", name="test") * @Template() */ public function testAction(Request $request) { $data = $request->request->get('data'); $session = $request->getSession(); $session->set('data',$data ); }
wydruk print_r() zmiennej sesji. Nic nie drukuje.
/** * test2. * * @Route("/test2", name="test2") * @Template() */ public function test2Action(Request $request) { $session = $request->getSession(); $data = $session->get('data'); }
Efekt jest taki, że po wprowadzeniu danej do formularza wyskakuje alert "ok", ale strona test2 nic nie drukuje. Jakby JavaScript nic do kontrolera nie przesłał.
---
edit
---
Jeśl bezpośrednio w konsoli przeglądarki odpale skrypt to wyświetla 404 not found (nie znajduje url {{ path('test') }} podanego w skrypcie)
POST http://localhost/Szobuk2/web/app_dev.php/%...)%20%7D%7D 404 (Not Found) m.ajaxTransport.send @ jquery.min.js:4 m.extend.ajax @ jquery.min.js:4 (anonymous function) @ VM2254:10 InjectedScript._evaluateOn @ VM2240:883 InjectedScript._evaluateAndWrap @ VM2240:816 InjectedScript.evaluate @ VM2240:682