我有一个表单,它将forn字段值传递给ajx脚本,然后将这些值传递给php,然后将它们发送到电子邮件地址。
我遇到的问题是值没有显示,而是我得到单词undefined。
这是我的ajax代码。
$(document).ready(function(){
$('form.save').submit(function () {
var name = $(this).find('.name').attr('value');
var email = $(this).find('.email').attr('value');
var telephone = $(this).find('.telephone').attr('value');
// ...
$.ajax({
type: "POST",
url: "application.php",
data: "name="+ name +"& email="+ email +"& telephone="+ telephone,
success: function(){
$('form.save').hide(function(){$('div.success')});
}
});
return false;
});
});
这是我的表格
<form action="" method="post" class="save">
<input type="text" name="name" id="name" clsss="name" value="" placeholder="Name"/>
<input type="text" name="email" class="email" value="" placeholder="Email"/>
<input type="text" name="telephone" class="telephone" value=""placeholder="Telephone"/>
<input name="certified" type="checkbox" value="" checked>I am a Certified sophisticated Investor
<input type="hidden" name="type" value="Certified sophisticated Investor">
<input type="submit" name="submit" class="button" value="Submit"/>
</div>
</form>
然后是php(php代码上没有卫生设施,我只是想获取价值,然后会使用更好的PHP代码)
$name = $_POST['name'];
$email = $_POST['email'];
$telephone = $_POST['telephone'];
// mail
$msg = "$name $email $telephone";
$msg = wordwrap($msg,70);
mail("*************","Application",$msg);
答案 0 :(得分:1)
data: "name="+ name +"& email="+ email +"& telephone="+ telephone
删除空格
data: "name="+ name +"&email="+ email +"&telephone="+ telephone
答案 1 :(得分:0)
将数据发送到ajax,如下所示:
$.ajax({
...
data : { 'foo' : bar, 'bar' : foo },
...
});
答案 2 :(得分:0)
您可以创建键/值对的对象:
$.ajax({
...
data : { 'name' : name, 'email' : email , 'telephone' : telephone},
...
});
答案 3 :(得分:0)
试试这个:
<form id="order-form"> <!--Try to add id for your form -->
<!--your code here-->
...
...
</form>
jQuery的:
$(document).ready(function(){
$('form.save').submit(function () {
var data = $("#order-form").serialize(); //You should use serialize for send data
$.ajax({
url: "/yourUrl",
data: data,
type: 'GET',
dataType: 'html',
success: function (result) {
$('form.save').hide(function(){$('div.success')});
$("#renderarea").html(result);
}
});
return false;
});
}):
答案 4 :(得分:0)
试试这个。它会正常工作。
$(document).ready(function(){
$('form.save').submit(function () {
var str = $( "form.save" ).serialize();
$.ajax({
type: "POST",
url: "getajax.php",
data: str,
success: function(){
$('form.save').hide(function(){$('div.success')});
}
});
return false;
});
});
答案 5 :(得分:0)
您的代码中存在一些问题,
请在此处查看此声明,
<input type="text" name="name" id="name" clsss="name" value="" placeholder="Name"/>
^ It should be class
您以错误的方式获取输入字段值。它应该是这样的:
var name = $(this).find('.name').val();
var email = $(this).find('.email').val();
var telephone = $(this).find('.telephone').val();
所以你的AJAX请求应该是这样的:
$(document).ready(function(){
$('form.save').submit(function () {
var name = $(this).find('.name').val();
var email = $(this).find('.email').val();
var telephone = $(this).find('.telephone').val();
$.ajax({
type: "POST",
url: "application.php",
data: {name:name, email:email, telephone:telephone},
success: function(){
$('form.save').hide(function(){$('div.success')});
}
});
return false;
});
});