這裏我試圖通過ajax.I使用post方法提交表單,使用formData對象來收集和發送form.But當我從目標頁面回顯字段值時,它返回一個空字符串。這就是說表單沒有提交。在控制檯我收到一個200的狀態代碼,formdata對象也獲得了所有的輸入。可能是什麼原因?ajax請求返回一個空字符串作爲迴應
<form action='home.php' method='POST' id='myform' enctype='multipart/form-data'>
name : <input type='text' name='myname' id='name_select'>
file : <input type='file' name='myfile' id='file_select' >
<input type='submit' value='form submit' id='submitbtn'>
</form>
<script>
var name=document.getElementById('name_select');
var file=document.getElementById('file_select');
var sub=document.getElementById('submitbtn');
var form=document.getElementById('myform');
sub.addEventListener('click',function(event){
event.preventDefault();
sub.value='uploading...';
var xhr=new XMLHttpRequest();
var formdata=new FormData();
var files=file.files[0];
var inputs=document.getElementsByTagName('input');
for(i=0;i<inputs.length;i++){
if(!inputs[i].disabled){
if(inputs[i].type=='file'){
formdata.append(inputs[i].name,files,files.name);
}else{
formdata.append(inputs[i].name,inputs[i].value);
}
}
}
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
console.log('form submitted');
alert((xhr.response));
sub.value='upload';
}else{
console.log('there is a problem');
}
}
}
xhr.open('POST','home.php',true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(formdata);
});
</script>
home.php:
<?php
echo $_POST['myname'];
?>
我沒在找jQuery解決方案:) –