gpt4 book ai didi

javascript - 通过 Javascript 将图像、选定的值发布到 php

转载 作者:行者123 更新时间:2023-12-02 15:50:06 27 4
gpt4 key购买 nike

您好,作为我的网站项目的一部分,我正在编写一个项目输入表单,网站本身非常简单,用户将:

  1. 写下商品名称
  2. 选择一些值
  3. 在文本区域中写入项目描述
  4. 上传商品图片

页面将使用 JS 收集此信息,然后发送到 PHP 页面,在 PHP 页面中检查该信息,然后将其插入数据库。我不确定代码有什么问题——php页面没有错误——因为提交后没有响应,尝试通过排除法解决,删除JS中的图像部分似乎使按钮响应,尽管没有输出给定。

<!DOCTYPE HTML>
<html>
<header>
<title> Results </title>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>

</header>

<body>
<form method="post" enctype="multipart/form-data">
<fieldset>
<legend>Add item form.. </legend>
<p> fill out the below details </p>
<p> Item name will be publicly viewed by users: <input type="text" id="itemID" name="itemName" placeholder="Enter item name.." /> </p>
location:
<select id="locSelect"> //4 options for every select
<option id="mountainID" value="mountain"> Mountain </option>


</select>

Category:
<select id="catSelect">
<option id="appliancesID" value="appliances"> Appliances </option>

</select>

Price range:
<select id="rangeSelect">
<option id="range1ID" value="range1"> 0-$50 </option>
</select>

<p> <input type="textarea" id="descriptionID" name="descriptionName" style="height:185px;width:400px;" placeholder="Please enter any item relevant info in this area..." /> </p>
<p> Upload Image: <input type="file" id="itemImageID" name="itemImage" /> </p>


<p> <input type="button" id="addID" name="add" value="Add item" onClick="runAdd();" /> </p>

</fieldset>
</form>

<div id="addResult"></div>
<script type="text/javascript">
function runAdd()
{
var item = $("#itemID").val();

var location = document.getElementById("locSelect"); //id of select
var selectedLoc = location.options[location.selectedIndex].text;

var category = document.getElementById("catSelect");
var selectedCat = category.options[category.selectedIndex].text;

var range = document.getElementById("rangeSelect");
var selectedRange = range.options[range.selectedIndex].text;

var textArea = document.getElementById("descriptionID").value;

var itemImg = document.getElementById("itemImageID");

$.post("itemDatabase.php", {
itemDB: item,
locationDB: selectedLoc,
categoryDB: selectedCat,
rangeDB: selectedRange,
textareaDB: textArea,
itemImgDB: itemImg },

function(data)
{

if(data == "int echoed by php page"){
$("#addResult").html("item/text is blank..");
//php will echo back to addResult <div> if input is not set
}


}
);

}
</script>
</body>
</html>

我相信我错误地发送了文本区域、选择和图像部分,因为当它们为空时,php 不会对它们进行任何回显。我在网上查找了代码,尽管它们与我通常只涉及 AJAX 或 PHP 的案例是分开的。

<?php 
session_start(); //for userID, different page stores it
$connection = mysql_connect("localhost", "root", "");
$db = mysql_select_db("project_database");


if (isset($_POST['add'])){

if(empty(trim($_POST['itemDB']))) { // if(!($_POST['itemDB'])) not working
echo "0"; }
else { $item = mysql_real_escape_string($_POST['itemDB']); }


if(isset($_POST['locationDB'])){
$location = $_POST['locationDB'];
} else {
echo "1"; }

if(isset($_POST['categoryDB'])){
$category = $_POST['categoryDB'];
} else {
echo "2"; }

if(isset($_POST['rangeDB'])){
$range = $_POST['rangeDB'];
} else {
echo "3"; }

if(empty(trim($_POST['textareaDB']))) {
echo "4"; }
else { $description = mysql_real_escape_string($_POST['textareaDB']); }


if(getimagesize($_FILES['itemImgDB']['tmp_name']) == FALSE)
{
echo "5";
}
else
{
$image = addslashes($_FILES['itemImgDB']['tmp_name']);
$image = file_get_contents($image);
$image = base64_encode($image);
}

$query = "INSERT INTO item (item_name, item_description, item_price_range, item_img, item_location, user_id, category_id) VALUES ('".$item."', '".$description."', '".$range."', '".$image."', '".$location."', '".$_SESSION["userID"]."', '".$category."')";
$itemAdded = mysql_query($query);
if($itemAdded) {
echo " Item " .$item. " has been added successfully "; }
else { echo " something went wrong "; }

}
?>

category_Id 和 user_id 是外键,图像以 BLOB 形式存储在数据库中(检查代码在不同页面上工作)

我知道某些功能已被弃用,但这就是我被指示完成任务的方式,我正在使用记事本。

我已经发布了大部分代码,以确保我了解问题所在或将来如何改进它,我感谢任何指示或提示,至少让我走上正确的道路,这样我就可以解决这个问题。

再次感谢您提前提供的任何帮助。

最佳答案

要回答有关通过 AJAX 上传图像的问题,这在以前是不可能的,但现在可以通过 FormData 对象实现(但它是一个相对较新的功能,并且与旧版浏览器不兼容,如果这对您很重要的话)。

您可能想要单独上传图像(老式),或者我建议您考虑使用 FormData。

下面的链接应该会有帮助(我希望):
https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects

希望这有帮助:)

关于javascript - 通过 Javascript 将图像、选定的值发布到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31908674/

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