使用 FormData 对象向 AJAX 中的控制器发送数据
sending data to controller in AJAX using FormData Object
我正在使用 CodeIgniter,我正在尝试使用 FormData 对象将一些数据发送到 AJAX 的控制器。
问题是,当我尝试使用 $this->input->get_post("AttributeName") 获取控制器中的数据时,其内容为 NULL。
这是代码:
观点:
<input type="text" name="firstName" id="new-member-firstName" class="new-event-text-input" autocomplete="off"/>
<input type="text" name="lastName" id="new-member-lastName" class="new-event-text-input" autocomplete="off"/>
<input type="text" name="title" id="new-member-title" class="new-event-text-input" autocomplete="off"/>
<input type="text" name="mail" id="new-member-mail" class="new-event-text- input" autocomplete="off"/>
JQuery 脚本:
var formData = new FormData();
formData.append("affiliation", $("#selectedAffiliate").val());
formData.append("firstName", $('#new-member-firstName').val());
formData.append("lastName", $('#new-member-lastName').val());
formData.append("title", $('#new-member-title').val());
formData.append("mail", $('#new-member-mail').val());
alert($("#selectedAffiliate").val())
$.ajax(
{
url:$("#URL").attr("myURL") + NewEvent/DataWriters/DataWriterForComities/addMember',
type:'post',
data:{ formData },
cache: false,
contentType: false,
processData: false,
datatype: 'html',
success:function(res)
{
alert("The Member has been registred");
},
statusCode:
{
500:function()
{
alert(500);
},
403:function()
{
alert(403);
},
400:function()
{
alert(400);
}
}
});
控制者:
public function addMember()
{
$this->load->model('Member');
$member = new Member();
$member->setLastName( $this->input->get_post("lastName") );
$member->setFirstName( $this->input->get_post("firstName") );
$member->setMail( $this->input->get_post("mail") );
$member->setTitle( $this->input->get_post("title") );
$memberId = $member->save();
echo $memberId;
}
获取这些数据的正确方法是什么,因为我检查了其他所有内容并且没问题。
你应该直接使用formData,不需要在对象中变形,如下:
data:formData,
我正在使用 CodeIgniter,我正在尝试使用 FormData 对象将一些数据发送到 AJAX 的控制器。
问题是,当我尝试使用 $this->input->get_post("AttributeName") 获取控制器中的数据时,其内容为 NULL。 这是代码:
观点:
<input type="text" name="firstName" id="new-member-firstName" class="new-event-text-input" autocomplete="off"/>
<input type="text" name="lastName" id="new-member-lastName" class="new-event-text-input" autocomplete="off"/>
<input type="text" name="title" id="new-member-title" class="new-event-text-input" autocomplete="off"/>
<input type="text" name="mail" id="new-member-mail" class="new-event-text- input" autocomplete="off"/>
JQuery 脚本:
var formData = new FormData();
formData.append("affiliation", $("#selectedAffiliate").val());
formData.append("firstName", $('#new-member-firstName').val());
formData.append("lastName", $('#new-member-lastName').val());
formData.append("title", $('#new-member-title').val());
formData.append("mail", $('#new-member-mail').val());
alert($("#selectedAffiliate").val())
$.ajax(
{
url:$("#URL").attr("myURL") + NewEvent/DataWriters/DataWriterForComities/addMember',
type:'post',
data:{ formData },
cache: false,
contentType: false,
processData: false,
datatype: 'html',
success:function(res)
{
alert("The Member has been registred");
},
statusCode:
{
500:function()
{
alert(500);
},
403:function()
{
alert(403);
},
400:function()
{
alert(400);
}
}
});
控制者:
public function addMember()
{
$this->load->model('Member');
$member = new Member();
$member->setLastName( $this->input->get_post("lastName") );
$member->setFirstName( $this->input->get_post("firstName") );
$member->setMail( $this->input->get_post("mail") );
$member->setTitle( $this->input->get_post("title") );
$memberId = $member->save();
echo $memberId;
}
获取这些数据的正确方法是什么,因为我检查了其他所有内容并且没问题。
你应该直接使用formData,不需要在对象中变形,如下:
data:formData,