Javascript Codeigniter&;jqueryajax,发布数据不通过
当我通过jQueryAjax发送post请求时,我在控制器中获取post数据时遇到问题,我已经使用firebug进行了检查,表单post数据正在提交,但是在控制器中,当我打印时($\u post);它返回一个空数组。有什么不对劲吗 以下是相关代码: 表单HTMLJavascript Codeigniter&;jqueryajax,发布数据不通过,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,当我通过jQueryAjax发送post请求时,我在控制器中获取post数据时遇到问题,我已经使用firebug进行了检查,表单post数据正在提交,但是在控制器中,当我打印时($\u post);它返回一个空数组。有什么不对劲吗 以下是相关代码: 表单HTML <form id="contact-form" class="form-horizontal subscribe" accept-charset="utf-8" action="<?= base_url ( 'Contact
<form id="contact-form" class="form-horizontal subscribe" accept-charset="utf-8" action="<?= base_url ( 'Contact/' ); ?>" method="post">
<!--Name-->
<div class="form-group">
<label class="sr-only" for="name">Name</label>
<div class="input-group">
<div class="input-group-addon"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></div>
<input id="name" type="text" class="form-control validate" name="name" placeholder="Your full name" value="">
</div>
</div>
<!--Email-->
<div class="form-group">
<label class="sr-only" for="email">Email</label>
<div class="input-group">
<div class="input-group-addon"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span></div>
<input id="email" type="text" class="form-control validate" name="email" placeholder="Your email address" value="">
</div>
</div>
<!--Message-->
<div class="form-group">
<label class="sr-only" for="message">Message</label>
<div class="input-group">
<div class="input-group-addon"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span></div>
<textarea id="message" name="message" class="form-control" rows="3" placeholder="Message"></textarea>
</div>
</div>
<!--Submit Button-->
<div class="form-group text-right">
<input id="contact_us" type="hidden" name="contact_us" value="Submit" />
<button type="submit" id="contact_us" class="btn btn-warning" name="contact_us" value="Submit">
Send <span class="glyphicon glyphicon-send" aria-hidden="true"></span>
</button>
</div>
</form>
如果您使用的是jquery,则应使用以下语法:
$.post('url',$("#contact-form").serialize(),function(data){
//here take action on returned data
});
您只需更改数据:$(this).serialize(),
到
数据:$(“#联系方式”).serialize(),
在ajax中,
$this
不起作用,因为在ajax中调用$this时,$this
始终调用父对象ajax。更改数据:$(this)。序列化(),
到数据:新表单数据($(“#联系人表单”)[0])
删除数据类型:“json”
如果这对您不起作用,请告诉我?学生x。这可能不是您的答案,但这是您通过表单所需的全部内容
$(function() {
"use strict";
$("#form1").submit(function() {
var data = $("#form1").serialize();
//alert(data); return false;
$.ajax({
url: "/forms/form1",
data: data,
type: "POST",
success: function(msg) {
if (msg) {
$("#display").html(msg);
} else {
$("#display").text("nothing came back For some reason");
}
}
});
return false;
});
}))
你也可以用这个。我所有的表单都使用这个,然后我只需要一个脚本。当然,你会改变成功。只需使用ajax ID命名所有表单
(function() {
"use strict";
$('form#ajax').on('submit', function() {
var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};
that.find('[name]').each(function(index, value) {
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
});
$.ajax({
url: url,
type: type,
data: data,
success: function(response) {
$('#display').html(response).delay(8000).fadeOut(1000);
}
});
return false;
}));
})(jQuery) 这将适用于图像上载到。。。serialize()在提交图像时可能会出现问题…将
数据:$(此)。serialize()
,更改为数据:新表单数据($('contact form')[0])
确实有效,但您能否解释$('contact form')[0]
?如果firebug显示正在传输的post数据,则表示数据:$('contact form')).serialize(),
正在工作。无论如何,我尝试了您的更改,但也没有成功:(
$(function() {
"use strict";
$("#form1").submit(function() {
var data = $("#form1").serialize();
//alert(data); return false;
$.ajax({
url: "/forms/form1",
data: data,
type: "POST",
success: function(msg) {
if (msg) {
$("#display").html(msg);
} else {
$("#display").text("nothing came back For some reason");
}
}
});
return false;
});
(function() {
"use strict";
$('form#ajax').on('submit', function() {
var that = $(this),
url = that.attr('action'),
type = that.attr('method'),
data = {};
that.find('[name]').each(function(index, value) {
var that = $(this),
name = that.attr('name'),
value = that.val();
data[name] = value;
});
$.ajax({
url: url,
type: type,
data: data,
success: function(response) {
$('#display').html(response).delay(8000).fadeOut(1000);
}
});
return false;