java-script: 私は、ajax呼び出しによってコントローラに値を送るフォームを持っています。 フォームは、ajax呼び出しでシリアル化され、コントローラは成功すると 'true'を返しますが、問題はフォームにファイルがあり、ファイルをシリアル化できないことです。私はこのAJAX呼び出しを使用して私のコントローラーでファイルを受け取ることができます。Javaスクリプト送信ボタンを使用してファイルを持つフォームを送信する
function save()
{
if(save_method == 'On_submitted')
{
url = "<?php echo site_url('MyController/insertForm')?>";
$.ajax({
url : url,
type: "POST",
data:$('#form_name').serialize(),
dataType: "JSON",
success: function(data)
{
if(data.status) //if success close modal and reload ajax table
{
$('#modal_name').modal('hide');
alert('added successfully');
reload_table();
}
else
{
for (var i = 0; i < data.inputerror.length; i++)
{
$('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); //select parent twice to select div form-group class and add has-error class
$('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); //select span help-block class set text error string
}
}
$('#btnSave').text('save'); //change button text
$('#btnSave').attr('disabled',false); //set button enable
},
error: function (jqXHR, textStatus, errorThrown)
{
alert('Error adding/update data');
$('#btnSave').text('save'); //change button text
$('#btnSave').attr('disabled',false); //set button enable
}
});
}
}
入力ファイルのフィールドを省略した場合、主な問題はファイルをjava-script経由でコントローラに送信することです。 私は試しましたが、何が間違っているのか分からず、どうすればいいのですか。
データ::; ' それ私が' VAR FORMDATAは=新しいいるFormData(。document.forms)からFORMDATA –
kashif
で値を取得しますFORMDATA、 最終的なAJAX呼び出しは次のようにする必要がありますたとえば、フォームに2つのファイル入力と1つのテキスト入力がある場合、このformDataオブジェクトは3つの引数すべてを持ちます(formData.get( "input_name")の使用を確認する) – Lojka
作業していません! console.log(formData.get( "input_name")); nullを取得すると、 "input_name"とは何ですか?属性??? – kashif