簡體   English   中英

使用ajax上傳時如何回顯值輸入類型的文本?

[英]How to echo value input type text when use ajax upload?

使用ajax上傳時如何回顯值輸入類型的文本?

這是我的代碼,用於將文件上傳到dir attachments_files ,效果很好。

但是我有一些問題。 我想知道如何使用php從upload.php id="username_uploader"回顯值?

我試圖這樣使用

echo $_POST['username_uploader'];

但沒有用 請幫我 。

的index.php

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<input id="username_uploader" type="text" name="username_uploader" value="test_user"/>
<input id="attachment_file_input_id" type="file" name="sortpic" onchange="test_fn()"/>
<div id="demoajax"></div>
<script>
function test_fn () {
            var file_data = $('#attachment_file_input_id').prop('files')[0];   
            var form_data = new FormData();                  
            form_data.append('file', file_data);
            $.ajax({
                        url: 'upload.php',
                        dataType: 'text',
                        cache: false,
                        contentType: false,
                        processData: false,
                        data: form_data,                         
                        type: 'post',
                        success: function(php_script_response){
                        alert("upload success");
                        $('#demoajax').append(php_script_response);
                    }
            });
};
</script>

upload.php的

<?php
    if ( 0 < $_FILES['file']['error'] ) {
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else 
    {
        move_uploaded_file($_FILES["file"]["tmp_name"], "attachments_files/" .$_FILES["file"]["name"]);

        echo $_POST['username_uploader'];
    }
?>

您需要在當前發送的FormData包含username_uploader值,因為您當前已忽略它。 嘗試這個:

var form_data = new FormData();                  
form_data.append('file', file_data);
form_data.append('username_uploader', $('#username_uploader').val());

PHP代碼返回JSON也是一種更好的做法,這樣您就不必擔心返回值的格式或空格。 這是一個完整的示例:

function test_fn () {
    var form_data = new FormData();          
    form_data.append('file', $('#attachment_file_input_id').prop('files')[0]);
    form_data.append('username_uploader', $('#username_uploader').val());

    $.ajax({
        url: 'upload.php',                      
        type: 'POST',
        dataType: 'json',
        cache: false,
        processData: false,
        data: form_data,   
        success: function(response){
            alert("upload success");
            $('#demoajax').append(response.uploader);
        }
    });
};
<?php
    if (0 < $_FILES['file']['error']) {
        echo json_encode(array('error' => 'Error: ' . $_FILES['file']['error'] . '<br>'));
    }
    else 
    {
        move_uploaded_file($_FILES["file"]["tmp_name"], "attachments_files/" .$_FILES["file"]["name"]);    
        echo json_encode(array('uploader' => $_POST['username_uploader']));
    }
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM