gpt4 book ai didi

javascript - PHP 在 ajax 调用中显示脚本的响应

转载 作者:行者123 更新时间:2023-12-02 13:46:48 25 4
gpt4 key购买 nike

我对脚本进行了 ajax 调用来上传文件,现在我想显示某些检查的一些反馈,例如文件是否已存在。

我无法让它显示我的脚本的响应。为什么没有显示响应?

这是我的 ajax 调用:

$(document).ready(function()
{
$("#upload").submit(function(e)
{
e.preventDefault();

$.ajax(
{
url: "upload.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data)
{
//i want response here true or false
location.reload(true);
}
});
});
});

upload.php脚本:

<?php

$dir = 'files';

echo upload();

/**
* Upload a file
*
* @return bool
*/
function upload()
{
// Storing source path of the file in a variable
$sourcePath = $_FILES['file']['tmp_name'];

// Target path where file is to be stored
$targetPath = "files/".$_FILES['file']['name'];

// Check if file already exists
if (file_exists($_FILES['file']['name'])) {
return false;
}

// Moving Uploaded file
move_uploaded_file($sourcePath,$targetPath) ;

return true;
}

最佳答案

首先,php 的返回是为了内部的东西。您需要回显一个字符串才能将值返回给 js:

<?php
echo "true";
?>

你需要一个简单的 if 来检查 js 中的情况:

if(data=="true"){
window.location.reload();
}

完整代码:

$(document).ready(function(){
$("#upload").submit(function(e){
e.preventDefault();
$.ajax({
url: "upload.php",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data)
{
if(data=="true"){
//window.location.reload();
alert("upload finished!");
}
}
});
});
});

关于javascript - PHP 在 ajax 调用中显示脚本的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41333572/

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