Chciałbym podać zmienną do kontrolera używająć ajax przy zdarzeniu onchange, wsadzić ją w sesję i wydrukować jej zawartość na nowej stronie.
//test1.html.twig with $.ajax script and
<input> tag.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"</script> <script type='text/javascript'>
function myFunction() {
var elementy = document.getElementsByClassName('inputISBN');
var data = elementy[0].getAttribute('value');
$.ajax({
url: "{{ path('test') }}",
type: "POST",
data: data ,
success: function() {alert("ok");}
});
}
<form action="#" method="#"> <input type="number" class="inputISBN" name="name" value="666" onchange="myFunction()">
Here are Actions in Controller:
/**
* @Route("/test1", name="test1")
* @Template()
*/
public function test1Action()
{
}
/**
* @Route("/test", name="test")
* @Template()
*/
public function testAction(Request $request)
{
$data = $request->request->get('data');
$session = $request->getSession();
$session->set('data',$data );
}
/**
* @Route("/test2", name="test2")
* @Template()
*/
public function test2Action(Request $request)
{
$session = $request->getSession();
$data = $session->get('data');
}
Dostaję alert('ok') po zmianie wartościw tagu input,ale po otwarciu test2.html.twig print_r($data) zwraca 1.