我有以下表格:
<form>
<input type="email" name="email">
<button>Join</button>
</form>
我想将get值传递给我的控制器,该控制器有/add/{email}
控制器代码:
public function addToNewsletterAction(Request $request){
//Some actions
}
如何传递获取值? 目前的代码:
$(document).ready(function() {
$("#newsletterButton").on("click", function() {
var email = $('.email').val();
$.ajax({
type: 'get',
url: "/add/newsletter/{email}",
data: $("form").serialize(),
succes: function() {
alert("Done");
}
})
})
})
答案 0 :(得分:3)
首先你需要改变它,这样你就可以发送一个变量,因为在这里发送"/add/newsletter/{email}"
并不是你想要的:
$(document).ready(function () {
$("#newsletterButton").on("click",function () {
var email = $('.email').val();
$.ajax({
type:'get',
url: "/add/newsletter/".email,
data:$("form").serialize(),
succes: function () {
alert("Done");
}
})
})
})
然后在你的控制器中:
public function addToNewsletterAction($email){
//do something with the email var
}
但你应该尝试通过你的网址发送id之类的内容,然后改变你的路线:/add/newsletter
然后在你的控制器中你可以做到:
public function addToNewsletterAction(Request $request){
$email = $request->request->get('email');
$other = $request->request->get('other')
}
并且不要忘记更改.twig:url:"/add/newsletter"
您的代码中存在问题。你的按钮没有id,我认为应该是newsletterButton
这里
修改强> 要获取电子邮件,您可以使用getElementById并在按钮中添加onClick功能。通过类似的方式更改您的表单:
<form>
<input type="email" name="email" id="email">
<button onclick="myFunction()">Join</button>
</form>
然后在你的脚本中添加myFunction:
function myFunction() {
var email = document.getElementById("email").value
$.ajax({
type:'get',
url: "/add/newsletter/",
data: {
'email' : email,
}
succes: function () {
alert("Done");
}
})
})
})
答案 1 :(得分:-1)
尝试以下方法:
public function addToNewsletterAction(Request $request){
$email = $request->email;
}
或尝试:
public function addToNewsletterAction($email=''){
echo $email; //or whatever you want to do with email
}