2018年4月19日 星期四

ajax post 資料不使用form格式,直接用id或class讀取input的vlaue值post

 html的部分                   

<input type="radio" name"data1" value="1">
<input type="text" name"data2" value="data2的資料">
<textarea rows="10" cols="80" name="data3" ></textarea>

 javascript的部分                   

function postData(){
if(confirm('確定要新增此則資料?')){
var dataValues={
data1:$('input[name=data1]').val(), data2:$('input[name= data2]').val(), data3:$('textarea[name= data3]').val()
}    //也可以使用輸入欄位的id或classsName帶入資料     $.ajax({         url:'addData.php',         type: 'POST',         data: dataValues,         async: false,         success: function (msg) {          alert(msg)          },         cache: false     });
    return false;
}else{    return false; }

}

 php的部分                   

然後addData.php頁面就可接收
$_POST['data1']
$_POST['data2']
$_POST['data3']
這三個值 

2018年4月9日 星期一

safari新版(11.1或之前不知幾版之後)的問題,呼叫ajax時,type=file的input物件若為空,會顯示failed to load resource:要求逾時的錯誤

safari新版(11.1或之前不知幾版之後)的問題,

呼叫ajax時form data型態
若form內有type=file的input物件是空值時,
那麼submit之後,會顯示failed to load resource:要求逾時  的錯誤

在chrome上功能可正常運作 ,只有safari會顯示此錯誤

目前解決方式:
在送出ajax前,若form內的檔案上傳(input type=file)是空的,也就是沒有檔案需要上傳
那麼,就把這個input刪除

$("input[type=file]").each(function() {
    if($(this).val() === "") {
        $(this).remove();
    }
});