PHP CKeditor отправляет пустые данные о $ _POST в базу данных с помощью ajax - PullRequest
0 голосов
/ 06 ноября 2018

CKEditor загружен правильно. но когда я хочу вставить данные в базу данных, он отправляет пустые данные это form, который я использовал для отправки данных.

<form action="ajax/EditDeleteLecture.php" method="post" enctype="multipart/form-data" id="form1">
    <div class="row">
    <div class="col-md-12">
    <div class="form-group">
    <label>Choose file: </label>
    <input type="file" name="files" id="files" placeholder="First Name" class="form-control" style="border:1px solid #464C6B">
    </div>
    </div>
    <div class="col-md-12">
    <div class="form-group">
    <label for="Date" class="control-label">Description</label>
    <textarea id="editor1" name="editor1"  class="form-control" tabindex="2" rows="10" cols="80">
    </textarea>
    </div>
    </div>
    </div>
    <div class="row">
    <span id='message'></span>
    <div class="col-md-12">                                         
    <span id="success_message" class="text-success"></span>
    <button type="button" class="btn btn-primary pull-right" data-dismiss="modal" onclick='addRecord()'>Upload</button>
    </div>    
    </div>
</form>

И function AddRecord() отправляет данные на страницу EditDeleteNewsAndEvents.php для вставки.

function addRecord(){
     var formData = new FormData($("#form1")[0]); //It automatically collects all fields from form
            $.ajax({
                url: "ajax/EditDeleteNewsAndEvents.php",
                type: "post",
                data: formData,
                 async: false,
                 cache: false,
                 contentType: false,
                 processData: false,
             success: function(output) {
                alertify.set('notifier','delay', 3);
                alertify.set('notifier','position', 'top-right');
                alertify.success('Data Inserted Successfully');            
                 readRecords();
                 $('#form1').trigger("reset");
                }

    });
}

И этот код я написал на странице EditDeleteNewsAndEvents.php, чтобы вставить данные в базу данных. но когда я получаю эту $desc = $_POST['editor1']; эту переменную, она показывает пустой в Network Pane.

//adding records in database
if(isset($_FILES['files']['name']))
{
    $files = $_FILES['files']['name']; 
    $desc = $_POST['editor1'];
    $path='News_And_Events_Images/'.$files;
    move_uploaded_file($_FILES["files"]["tmp_name"], $path);
    $date =  date('d-M-y');

          echo $query = "INSERT INTO news_events(body,posted_by,posted_date,pic) VALUES ('$desc','$single_user','$date','$path')"; exit;

         $cm=sqlsrv_query($conn,$query);
}

И это показано в Network Pane.

INSERT INTO news_events(body,posted_by,posted_date,pic) VALUES ('                                            ','0302254855','06-Nov-18','News_And_Events_Images/0bd5583c05354dbceb79c833c27f6c68.jpg')

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Когда вы отправляете данные на сервер с использованием традиционных форм, textarea обновляется , автоматически обновляя содержимое редактора . Это потому, что данные берутся из textarea, а не из редактора, который не является элементом формы, как textarea.

Если, однако, вы используете AJAX для отправки вашего запроса, вам следует либо обновить текстовое поле вручную , а затем получить данные из него, либо получить данные из редактора напрямую .

0 голосов
/ 06 ноября 2018

Я думаю, у вас должна быть определенная переменная для CKEDITOR в вашем function addRecord():

 var ckInfo = CKEDITOR.instances['editor1'].getData();

В моем случае все работает нормально, но тогда вам следует немного изменить переменную data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...