Как вставить файл и другой тип ввода с помощью php и ajax с помощью функции - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь вставить файл и текст в базу данных, используя ajax, но это не работает. основная проблема - это файл, который не вставляется в базу данных. Вот мой код

     <form id="descriptionsubmit" enctype = "multipart/form-data">
    <textarea class="form-control" id="textarea-description" placeholder="Write Something"></textarea>
  <input type="file" name="upload-pic" id="upload-pic" class="inputfile" >  
 <button type="submit" class="update-btn">Next</button>
</form>

Ajax для того же предупреждения (данные) ничего не показывают

$(function(){
    
        $('form#descriptionsubmit').on('submit', function (e) {
          e.preventDefault();
          var file_data = $('#upload-pic').prop('files')[0];
    var formData = new FormData(this);
    $.ajax({

         method: "POST",
        url : "AJAXSubmitClientData.php", 
       
        data :formData,
        dataType : "html",
                 
            contentType: false,
             enctype: 'multipart/form-data',
            cache: false,
            processData:false,
        success:function(data)
        {
            alert(data);
        }
    });

Php код Здесь описание вставляется, но не файл

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

$file = array(   
    "name" => $_FILES['form_data']['name'],
    "tmp_name" => $_FILES['form_data']['tmp_name']   
    );
    print_r($file);
$fileinserted = $objMaster->imageinsert($file);
$dataDescription = array(
    "description"           => $_POST['description'],
    "projectProfile" => $fileinserted,
    );
  
 echo $insertdata = $objMaster->updateJobPostTable($dataDescription,$_SESSION['lastinsertid']);
echo 1;
}

imageinsert Функция

 public function imageinsert($file, $path = "") {
        $fname = "";
        $uploadpath = "";
        if ($path == "") {
            $uploadpath = $this->upload1;
        } else {
            $uploadpath = $this->upload1 . $path . "/";
        }
        $current_timestamp = $this->timeStamp();
        $filename = basename($file['name']);
        $newname = $current_timestamp . $filename;
        if ((move_uploaded_file($file['tmp_name'], $uploadpath . $newname))) {
            $fname = $newname;
        }
        return $fname;
    }

Любая помощь приветствуется

1 Ответ

0 голосов
/ 13 июля 2020

HTML Страница: -

измените значение свойства button на type="button" вместо type="submit" и добавьте onclick Атрибут события.

 <form id="descriptionsubmit" action="" method="post" enctype = "multipart/form-data">
    <textarea class="form-control" name="textarea-description" placeholder="Write Something"></textarea>
  <input type="file" name="upload-pic" id="upload-pic" class="inputfile" >  
 <button type="button" onclick="addData()" class="update-btn">Next</button>
</form>

JS AJax Код: -

function addData() {
    var formData = new FormData($('#descriptionsubmit')[0]);
    formData.append('action', 'add');
    $.ajax({
        method: 'post',
        processData: false,
        contentType: false,
        cache: false,
        enctype: 'multipart/form-data',
        url: 'AJAXSubmitClientData.php',
        data: formData,
        success:function(msg){
            alert(msg);
        }
    });
}

AJAXSubmitClientData. php

<?php
include('dbconn.php');

if(isset($_POST["action"]) && $_POST["action"]=="add"){
  echo  $a = $_POST["textarea-description"];
   echo $g = $_FILES["upload-pic"]["name"];
// insert code here.
 
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...