通过ajax提交表单时获取未定义的值

时间:2018-04-06 13:24:46

标签: javascript php jquery ajax forms

我有一个来自前端的表单,我试图使用ajax提交到后端。

<form method="post" enctype="multipart/form-data" id="form_post">
  <input type="hidden" name="name" id="name" class="name" value="ABC">
  <input type="hidden" name="location"  id="location" class="location"  value="XYZ">
  <textarea class="c-textarea desc" name="desc"  id="desc" placeholder="Type your description"></textarea>
  <input type="file" id="file" class="file" name="file" >
</form>

<script type="text/javascript">
    $("#form_post").submit(function() 
      {
        var formData = new FormData();
        $f2 = $('#file');
        formData.append('file', $f2.get(0).files[0]);
        formData.append('name', name.value);
        formData.append('location', location.value);
        formData.append('desc', desc.value);
       jQuery.ajax(
        {
          type: "POST",
          url: "<?php echo base_url(); ?>" + "class/send_data",
          data: formData,
          processData: false,
          contentType: false,
          success: function(res) 
            {
              alert(res);
              console.log(res);
            },
          error: function(errResponse) 
            {
              console.log(errResponse);
            }
        });
        return false;
      });  
</script>  

在警报中,我获取了desc的值,但是对于名称和位置,它是未定义的。

在后端我使用以下代码

获取值
$data = array(
'name' = $this->input->post('name')
'location'->input->post('location')
'desc'->input->post('desc')
);

任何人都可以告诉我如何获取值

1 个答案:

答案 0 :(得分:0)

根据我的评论,您需要使用$_POST

访问通过ajax发送的值
<?php
$name = $_POST['name'];
$location = $_POST['location'];

echo $name.''.$location;        
?>
  

修改

将ajax调用中的data键更改为

data: new FormData(this),