使用ajax上传时如何回显值输入类型的文本? - javascript

使用ajax上传时如何回显值输入类型的文本?

这是我用于将文件上传到dir attachments_files的代码,并且工作正常。

但是我有一些问题。我想知道如何使用php从id="username_uploader"中的upload.php回显值?

我试图这样使用

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'];
    }
?>

参考方案

您需要在发送的username_uploader中包含FormData值,因为当前已忽略它。尝试这个:

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']));
    }
?>

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

在JavaScript函数中转义引号 - javascript

我正在尝试将变量传递给javascript函数。根据用户的选择,它可以是文本或图像。这里已经讨论了类似的问题,但我无法解决。在php中,我这样编码:if ($choice == 1) { $img = '<img src = "../folder/'.$_SESSION["img"].'�…

如何调用超链接单击中包含单引号的消息的JavaScript警报? - javascript

我陷入了javascript问题。我正在使用C#编写可以调用javascript来显示警报消息的超链接。请参阅下面的代码以了解它是如何完成的:首先,这是C#从服务器端编写的代码://Server side code string myHyperlink = "<a href='#' onclick=\"alert…

如何在没有for循环的情况下在Javascript中使用Django模板标签 - javascript

我想在JavaScript中使用模板变量:我的问题是在javascript代码中使用for循环,for循环之间的所有事情都会重复..但我不想要....下面粘贴了我的代码..有人可以告诉我更好的方法吗这..因为这看起来很丑..这是我的代码: {% block extra_javascript %} <script src="/static/js…

使用JS和PHP更改弹出窗口背景图像 - javascript

我有一个JS函数:function zoom(now) { document.getElementById("popup").style.display = "block"; document.getElementById("photos").style.backgroundImage = …