【发布时间】:2021-12-07 00:44:03
【问题描述】:
我有这个 ajax 发布到服务器以将一些数据发送到 SQL 数据库:
$.ajax({
method: "POST",
url: "https://www.example.com/main/public/actions.php",
data: {
name: person.name,
age: person.age,
height: person.height,
weight: person.weight
},
success: function (response) {
console.log(response)
}
})
在服务器中,我使用 php 获取这些数据,如下所示:
<?php
include "config.php";
if(isset ( $_REQUEST["name"] ) ) {
$name = $_REQUEST["name"];
$age = $_REQUEST["age"];
$height = $_REQUEST["height"];
$weight = $_REQUEST["weight"];
$sql = "INSERT INTO persons ( name, age, height, weight )
VALUES ( '$name', '$age', '$height', '$weight' )";
if ($conn->query($sql) === TRUE) {
echo "New person stored succesfully !";
exit;
}else {
echo "Error: " . $sql . "<br>" . $conn->error;
exit;
}
};
?>
我也有这个输入:
<input id="myFileInput" type="file" accept="image/*">
在与actions.php 相同的目录中,我有文件夹/images
如何在此 ajax 帖子中包含图像(来自 #myFileInput)并使用 php 中的相同查询将其保存到服务器?
我已经在 SO 中搜索了解决方案,但其中大多数已经超过 10 年,我想知道是否有一种简单而现代的方法可以做到这一点,如果它是最佳实践,我愿意学习和使用 fetch api .
【问题讨论】:
-
我猜“现代”方法是将
Fetchapi与FormData对象结合使用 -
请注意,您的代码易受 SQL 注入攻击,您可能希望进行的另一项更改是开始使用 prepared statements
-
要在 ajax 中上传文件,请使用 FormData (我想如果你用谷歌搜索“ajax 文件上传”你会得到很多例子)
标签: javascript php jquery ajax fetch-api