Файлы изображений успешно загружены в папку, но имя файла не сохраняется в базе данных
Просмотр формы ввода страницы. Я пытался загрузить продукт с изображениями продуктов и выполнить полную операцию с изображениями и деталями продукта. Это форма для получения сведений о продукте и загрузки изображений.
<form action="" method="post" id="product_form">
<div class="form-group">
<label for="">Subcategory</label>
<select class="form-control input-lg" id="select_subcategory">
<option value="">Choose Subcategory</option>
<option>One</option>
<option>Two</option>
<option>Three</option>
</select>
</div>
<div class="form-group">
<label for="">Product Title</label>
<input type="text" id="product_title" class="form-control">
</div>
<div class="form-group">
<label for="">Upload Images</label>
<input class="form-control input-lg" type="file" id="prod_img" name="prod_img[]"
multiple="multiple">
</div>
<div class="form-group">
<label for="">Brand</label>
<select class="form-control input-lg" id="select_brand">
<option value="">Choose Brand</option>
<option>One</option>
<option>Two</option>
</select>
</div>
<div class="form-group">
<label for="">Color</label>
<select class="form-control input-lg" id="product_color">
<option value="">Choose Color</option>
<option>White</option>
<option>Black</option>
</select>
</div>
<div class="form-group">
<label for="">Product Size</label>
<select class="form-control input-lg" id="product_size">
<option value="">Select Size</option>
<option>Small</option>
<option>Medium</option>
</select>
</div>
<div class="form-group">
<label for="">Product Price</label>
<input type="number" id="product_price" class="form-control">
</div>
<div class="form-group">
<label for="">Discounted Price</label>
<input type="text" placeholder="INR" class="form-control" id="prod_discount_price">
</div>
<div class="form-group">
<label for="">Description</label>
<input type="text" class="form-control" id="product_description">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" id="add_product">Add Data</button>
</div>
Код Ajax на странице просмотра для отправки данных на сервер.
$(document).on("click", "#add_product", function(e){
e.preventDefault();
var select_category = $("#select_category").val();
var select_subcategory = $("#select_subcategory").val();
var product_title = $("#product_title").val();
var prod_img = $("#prod_img")[0].files;
var select_brand = $("#select_brand").val();
var product_color = $("#product_color").val();
var product_size = $("#product_size").val();
var product_price = $("#product_price").val();
var prod_discount_price = $("#prod_discount_price").val();
var product_description = $("#product_description").val();
if( select_category == "" || select_subcategory == "" || product_title == "" || select_brand ==
"" || product_color == "" || product_size == "" || product_price == "" || prod_discount_price ==
"" || product_description == "" )
{
alert("All fields are required");
}
else
{
var fd = new FormData();
var ins = document.getElementById("prod_img").files.length;
for(var i=0; i< ins; i++)
{
fd.append("prod_img[]", document.getElementById("prod_img").files[i]);
}
fd.append("select_category", select_category);
fd.append("select_subcategory", select_subcategory);
fd.append("product_title", product_title);
fd.append("select_brand", select_brand);
fd.append("product_color", product_color);
fd.append("product_size", product_size);
fd.append("product_price", product_price);
fd.append("prod_discount_price", prod_discount_price);
fd.append("product_description", product_description);
$.ajax({
url: "<?php echo base_url(); ?>InsertProduct",
type: "post",
data: fd,
processData: false,
contentType: false,
dataType: "json",
success:function(data)
{
fetch();
if(data.response == "success")
{
$('#ProductModal').modal('hide');
$("#tbody").DataTable().destroy();
toastr["success"](data.message)
}
else
{
toastr["error"](data.message)
}
}
});
$("#product_form")[0].reset();
}
});
Код контроллера для загрузки нескольких файлов изображений и сведений о продукте с проверкой сеанса. файлы успешно загружены в папку. все сведения о продукте успешно отправлены в базу данных, но раздел изображений в базе данных пуст. Мне не удалось отправить имя файла изображения.
public function InsertProduct()
{
if($this->session->userdata('email')=="" && $this->session->userdata('password')=="")
{
$this->load->view('Admin/index');
}
else if($this->input->is_ajax_request())
{
$this->form_validation->set_rules('select_category', 'Category', 'required|trim');
$this->form_validation->set_rules('select_subcategory', ' Subcategory', 'required|trim');
$this->form_validation->set_rules('product_title', 'Product Title', 'required|trim');
$this->form_validation->set_rules('select_brand', 'Product Brand', 'required|trim');
$this->form_validation->set_rules('product_color', 'Product Color', 'required|trim');
$this->form_validation->set_rules('product_size', 'Product Size', 'required|trim');
$this->form_validation->set_rules('product_price', 'Product Price', 'required|trim');
$this->form_validation->set_rules('prod_discount_price', 'Discount Price',
'required|trim');
$this->form_validation->set_rules('product_description', 'Product Description',
'required|trim');
if($this->form_validation->run() == FALSE)
{
$data = array('response' =>"error", 'message'=>validation_errors());
}
else
{
//$this->load->library('upload');
$img = array();
$no_of_images = count($_FILES['prod_img']['name']);
if($no_of_images > 10)
{
$data = array('response' =>"error", 'message'=>"10 Images allowed only");
}
else
{
for($i = 0; $i < $no_of_images; $i++)
{
$_FILES['img_file']['name'] = $_FILES['prod_img']['name'][$i];
$_FILES['img_file']['type'] = $_FILES['prod_img']['type'][$i];
$_FILES['img_file']['tmp_name'] = $_FILES['prod_img']['tmp_name'][$i];
$_FILES['img_file']['error'] = $_FILES['prod_img']['error'][$i];
$_FILES['img_file']['size'] = $_FILES['prod_img']['size'][$i];
$config['upload_path'] = "./ProductImages/";
$config['allowed_types'] = "jpg|jpeg|png";
$this->load->library('upload', $config);
$this->upload->initialize($config);
if($this->upload->do_upload('img_file'))
{
$img_data = $this->upload->data();
$data[$i]['prod_img'][] = $img_data['file_name'];
}
}
if(!empty($data))
{
$data = $this->input->post();
if($this->adm->InsertProduct($data))
{
$data = array('response'=>"success", 'message'=>"Data updated
successfully");
}
else
{
$data = array('response'=> "error", 'message'=> "failed");
}
}
}
}
echo json_encode($data);
}
}
Model Code for inserting data I have
public function InsertProduct($data)
{
return $this->db->insert('product',$data);
}
Я выбрал 4 файла изображений для загрузки. Изображения загружены, я получаю сообщение об успешном завершении и проверил его в указанной папке. Но имя файла изображения не отображается в базе данных. Помогите нам Спасибо
-
0ibb.co/JRbqbzh Образы таблиц базы данных kunal sinha

1 ответ
Вам необходимо сохранить имя изображения в таблице товаров как json_encode.
public function InsertProduct()
{
if($this->session->userdata('email')=="" && $this->session->userdata('password')=="")
{
$this->load->view('Admin/index');
}
else if($this->input->is_ajax_request())
{
$this->form_validation->set_rules('select_category', 'Category', 'required|trim');
$this->form_validation->set_rules('select_subcategory', ' Subcategory', 'required|trim');
$this->form_validation->set_rules('product_title', 'Product Title', 'required|trim');
$this->form_validation->set_rules('select_brand', 'Product Brand', 'required|trim');
$this->form_validation->set_rules('product_color', 'Product Color', 'required|trim');
$this->form_validation->set_rules('product_size', 'Product Size', 'required|trim');
$this->form_validation->set_rules('product_price', 'Product Price', 'required|trim');
$this->form_validation->set_rules('prod_discount_price', 'Discount Price',
'required|trim');
$this->form_validation->set_rules('product_description', 'Product Description',
'required|trim');
if($this->form_validation->run() == FALSE)
{
$data = array('response' =>"error", 'message'=>validation_errors());
}
else
{
//$this->load->library('upload');
$img = array();
$no_of_images = count($_FILES['prod_img']['name']);
if($no_of_images > 10)
{
$data = array('response' =>"error", 'message'=>"10 Images allowed only");
}
else
{
for($i = 0; $i < $no_of_images; $i++)
{
$_FILES['img_file']['name'] = $_FILES['prod_img']['name'][$i];
$_FILES['img_file']['type'] = $_FILES['prod_img']['type'][$i];
$_FILES['img_file']['tmp_name'] = $_FILES['prod_img']['tmp_name'][$i];
$_FILES['img_file']['error'] = $_FILES['prod_img']['error'][$i];
$_FILES['img_file']['size'] = $_FILES['prod_img']['size'][$i];
$config['upload_path'] = "./ProductImages/";
$config['allowed_types'] = "jpg|jpeg|png";
$this->load->library('upload', $config);
$this->upload->initialize($config);
if($this->upload->do_upload('img_file'))
{
$img_data = $this->upload->data();
$img[] = $img_data['file_name'];
}
}
if(count($img) > 0){
$data['prod_img'] = json_encode($img);
}
if(!empty($data))
{
$data = $this->input->post();
if($this->adm->InsertProduct($data))
{
$data = array('response'=>"success", 'message'=>"Data updated
successfully");
}
else
{
$data = array('response'=> "error", 'message'=> "failed");
}
}
}
}
echo json_encode($data);
}
}
public function InsertProduct($data)
{
return $this->db->insert('product',$data);
}
-
0Я пробовал в соответствии с вашими предложениями, но снова изображение загружается в папку, но не в базу данных. у меня ошибка. ibb.co/vhr344R
-
0ibb.co/qkbYM0j Мой модальный код
Другие вопросы
- Функция клавиатуры работает только один раз для первой буквы ввода2 ответ
У меня есть текстовый ввод, где пользователь вводит желаемое имя страницы<input type='text' id='pageName' name='PageName' class='form-control pageName'> Я пытаюсь использовать функцию keyup для запуска Ajax, чтобы проверить, существует ли страница, однако при вводе чего-то вродеindex Ajax от...
- ajax дважды загружает данные из базы данных с помощью laravel php1 ответ
привет, я пытаюсь загрузить данные из базы данных с помощью ajax. но данные загружаются дважды на страницу html.<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $('button').click(function(){ $.ajax({ ...
- отображать другие входы на основе значения другого входа с помощью laravel, ajax1 ответ
Я новичок в laravel, и я пытаюсь создать форму и отправить ее в базу данных. Мне удалось сохранить данные в базе данных, используя следующий код. Мой клинок: <form id="castingform" method="post" action="castingss" enctype="multipart/form-data"> ...
- Передача значения параметра от кнопки Datatables к функции1 ответ
Я пытаюсь передать значение кнопки в таблице данных функции. Однако я просто получаю значение первой строки. Надеюсь, ты сможешь мне помочь. Мне просто нужно предупредить параметр, а обо всем остальном я позабочусь. вот код memberlist.php<?php header('Content-Type: application/json; Charset="...
- Отправить значение ползунка jQuery с помощью AJAX1 ответ
Я отправляю две переменные jQuery (urlid а такжеbonus ) с AJAX в серверный скрипт. Это работает, как ожидалось. Теперь я хочу добавить слайдер jQuery (#slider-vertical ) к сценарию. Фактическое выбранное значение ползунка должно быть отправлено с помощью AJAX. Я пробовал вот так, но значение ползунк...
- Найдите общую сумму, в которую входит каждая транзакция (диаграмма Google)2 ответ
У меня есть диаграмма, в которой мне нужно подсчитать сумму, которую я зарабатываю с течением времени. На этом графике у меня есть сумма (красная линия). Моя цель - вычислить общую сумму каждой входящей транзакции. Мой текущий код не работает должным образом, потому что, когда время 18:26:23, это 10...
- Я пытаюсь использовать раскрывающийся список выбора для перехода к другим страницам моей разбивки на страницы вместо обычного использования тегов <a>1 ответ
Итак, у меня есть раскрывающийся список выбора, который создается динамически для использования в качестве навигации к другим страницам в скрипте. Он заполняется количеством страниц, к которым нужно перейти. Если я выберу «3», страница будет загружена на страницу «3», но раскрывающийся список не ост...
- Мне нужно передать данные из переменной атрибута id в атрибут href, чтобы завершить маршрут href2 ответ
Я хотел узнать, есть ли у кого-нибудь представление о том, как передать переменную id в другой атрибут в том же теге os из другого тега. Я просто пытаюсь добавить всплывающее окно, чтобы пользователь подтвердил, прежде чем удалять другого пользователя. <a class="deleteUserBTN btn btn-outli...
- Добавить параметр Get к каждому URL-адресу на веб-сайте (например, fbclid / gclid)2 ответ
Здравствуйте, я хотел бы добавить параметр get к моим ссылкам на моих веб-сайтах, не изменяя их в файлах, просто автоматически добавляйте? Custom = something ко всем URL-адресам без обновления Аналогично fbclid или gclid
- Запрос выбора PHP распечатывает множество элементов из базы данных [закрыто]3 ответ
Закрыто . Этот вопрос требует подробностей или ясности . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Добавьте подробности и проясните проблему, отредактировав этот пост . Закрыт 2 месяца назад . Уточните этот вопрос Мой стол Так что я хочу напечатать его какCoffee Name: ...

"Завидую тестировщикам: все хотят с ними дружить."