gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:34:13 29 4
gpt4 key购买 nike

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

这是我将文件上传到目录 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>

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

关于javascript - 使用ajax上传时如何回显值输入类型文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35041527/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com