【问题标题】:send post data input text and file ( php, jquery, ajax) event click发送发布数据输入文本和文件(php、jquery、ajax)事件点击
【发布时间】:2018-07-13 14:48:23
【问题描述】:

我有一个表单 html 然后我有 2 个输入(输入文本和输入文件) 我的问题输入文本无法发送帖子以上传 php。 我使用 jquery ajax 发布数据

上传.php

<?php


$nama   = $_POST['name'];
$filename = $_FILES['file']['name'];


var_dump($nama);
var_dump($filename);

表格

 <form method='post' action='' enctype="multipart/form-data">
                       <input type="text" class="form-control" id="name" name="name" placeholder="Enter name" required />

                        Select file : <input type='file' name='file' id='file' class='form-control' ><br/>

          <input type='button' class='btn btn-info' value='Upload' id='upload'>
        </form>
<script type="text/javascript" >
  $(function() {
  $("#upload").click(function() {
    var name = $('#name').val();
    var fd = new FormData();
    var files = $('#file')[0].files[0];
    fd.append('file',files);

    $.ajax({
      type: "POST",
      url: "upload.php",
      dataType: 'text',  // what to expect back from the PHP script, if anything
      cache: false,
      contentType: false,
      processData: false,
      data: fd,
      success: function(){

      }
    });
  return false;
  });
  });
</script>

【问题讨论】:

    标签: php jquery ajax post click


    【解决方案1】:

    只需删除 dataType:text。或者您可以根据需要使用 dataType:"json" 。好吧,您也可以在此处阅读有关此数据类型的更多信息:$.ajax - dataType

    对于 name 参数,您缺少将该变量附加到 fd 变量中。

    所以,你的脚本应该是这样的:

    <script type="text/javascript" >
    $(function() {
    $("#upload").click(function() {
    var name = $('#name').val();
    var fd = new FormData();
    var files = $('#file')[0].files[0];
    fd.append('file',files);
    fd.append('name',name); // you were missing this, that's why $_POST['name'] was blank
    $.ajax({
      type: "post",
      url: "upload.php", 
      cache: false,
      contentType: false,
      processData: false,
      data: fd,
      success: function(){
    
      }
    });
    return false;
    });
    });
    </script>
    

    现在尝试将以下代码打印到您的 upload.php 文件中:

    <?php
    echo $nama   = $_POST['name'];
    echo $filename = $_FILES['file']['name'];
    ?>
    

    【讨论】:

    • 非常感谢..嗯我有一个问题如何附加缓存:false,contentType:false,processData:false,在我的代码中是:$.post(url,{fd},function( )
    • 嘿 senaa,能否请您随代码一起上传另一个问题?会很棒的..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多