javascript - 产品未添加到数据库中
问题描述
我在将管理面板中的数据添加到数据库时遇到问题。我是 php 新手,我怀疑我的 php 代码有问题。尤其是在将图像添加到数据库时。我尝试了很多但无法弄清楚解决方案。
这是我的php代码:
public function addProduct($product_name,
$brand_id,
$category_id,
$product_desc,
$product_qty,
$product_price,
$file){
$fileName = $file['name'];
$fileNameAr= explode(".", $fileName);
$extension = end($fileNameAr);
$ext = strtolower($extension);
if ($ext == "jpg" || $ext == "jpeg" || $ext == "png") {
//print_r($file['size']);
if ($file['size'] > (1024 * 2)) {
$uniqueImageName = time()."_".$file['name'];
if (move_uploaded_file($file['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/big_store/web/images/".$uniqueImageName)) {
$uname= $_SESSION['user'];
$q = $this->con->query("INSERT INTO `products`(`product_cat`, `product_brand`, `product_title`, `product_qty`, `product_price`, `product_desc`, `product_image`, `vendor_name`) VALUES ('$category_id', '$brand_id', '$product_name', '$product_qty', '$product_price', '$product_desc', '$uniqueImageName', '$uname')");
if ($q) {
return ['status'=> 202, 'message'=> 'Product Added Successfully..!'];
}else{
return ['status'=> 303, 'message'=> 'Failed to run query'];
}
}else{
return ['status'=> 303, 'message'=> 'Failed to upload image'];
}
}else{
return ['status'=> 303, 'message'=> 'Large Image ,Max Size allowed 2MB'];
}
}else{
return ['status'=> 303, 'message'=> 'Invalid Image Format [Valid Formats : jpg, jpeg, png]'];
}
}
这是我的javascript:
getProducts();
$(".add-product").on("click", function(){
$.ajax({
url : './classes/Products.php',
method : 'POST',
data : new FormData($("#add-product-form")[0]),
contentType : false,
cache : false,
processData : false,
success : function(response){
console.log(response);
var resp = $.parseJSON(JSON.stringify(response));
if (resp.status == 202) {
$("#add-product-form").trigger("reset");
$("#add_product_modal").modal('hide');
getProducts();
}else if(resp.status == 303){
alert(resp.message);
}
}
});
});
这是我创建以添加到数据库的 html 表单。
<div class="modal fade" id="add_product_modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Add Product</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form id="add-product-form" enctype="multipart/form-data">
<div class="row">
<div class="col-12">
<div class="form-group">
<label>Product Name</label>
<input type="text" name="product_name" class="form-control" placeholder="Enter Product Name">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>Brand Name</label>
<select class="form-control brand_list" name="brand_id">
<option value="">Select Brand</option>
</select>
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>Category Name</label>
<select class="form-control category_list" name="category_id">
<option value="">Select Category</option>
</select>
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>Product Description</label>
<textarea class="form-control" name="product_desc" placeholder="Enter product desc"></textarea>
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>Product Qty</label>
<input type="number" name="product_qty" class="form-control" placeholder="Enter Product Quantity">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>Product Price (Rs)</label>
<input type="number" name="product_price" class="form-control" placeholder="Enter Product Price">
</div>
</div>
<div class="col-12">
<div class="form-group">
<label>Product Image <small>(format: jpg, jpeg, png)</small></label>
<input type="file" name="product_image" class="form-control">
</div>
</div>
<input type="hidden" name="add_product" value="1">
<div class="col-12">
<button type="button" class="btn btn-primary add-product">Add Product</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
解决方案
推荐阅读
- ruby-on-rails - 确保 Rails 脚手架将空表单字段保存为 nil 而不是空字符串的最佳实践?
- wordpress - 如何更改woocommerce商店页面详细信息?
- emacs - 避免注释行将光标移动到标题的开头(ORGMODE)
- spring-boot - 使用自定义存储库作为 CRUD 实现
- javascript - 反应无限渲染循环
- javascript - React Native 如何
在 flex 方向行内使用 - html - 什么是 MSO?[电子邮件模板 Outlook HTML]
- css - 在bookdown gitbook中更改R块背景颜色
- excel - 硬编码一个简单的 4X3 数组
- javascript - 根据用户选择的下拉条件(几个条件)进行 React JS 过滤