PHP и Ajax, как правильно передать запрос?

142
11 января 2020, 12:20

Доброго времени суток!

Пытаюсь создать модуль комментариев на PHP который будет отправлять, обрабатывать и отображать комментарии без перезагрузки страниц, но JS как и Ajax я знаю на довольно плохом уровне, по этому возникли проблемы.

Собственно, в чем проблема?

Вот часть стандартного JS кода отвечающего за отправку POST запроса:

add: function () {
    let Data = new FormData();
    -- Передача данных из поля "контент" на сайте в POST запрос.
    Data.append('content.', $('#content').val());
    $.ajax({
        url: 'URL POST запроса',
        type: this.ajaxMethod,
        data: Data,
        cache: false,
        processData: false,
        contentType: false,
        beforeSend: function () {
        },
        sucess: function () {
        }
    });
}

Но проблема следующая, необходимо передать имя человека который оставил комментарий, в голову приходит только написание JS кода в PHP с заменой Data.append, к примеру так: `Data.append('userName', $('').val()); - здесь я запишу в базу данных в поле userName содержимое переменной $userName, то есть имя пользователя.

Что по моему мнению не совсем корректно, так как не люблю мешать HTML вместе с PHP в одном файле, не говоря уже про JS + PHP.

Какие существуют более менее адекватные способы сделать отправку POST запроса через PHP с передачей данных переменной из PHP?

Пытался гуглить, но большинство ответов склоняются к написанию JS в PHP коде, что опять же меня не устраивает. Как подобные ajax запросы реализованы в других проектах, либо как реализовали их вы?

Answer 1

Вот пример как можно реализовать передачу имени на сервер.Будет работать без перезагрузки страницы.

var id=812382;
var k="Иван";

     $.ajax ({ // сам метод ajax
      url: "ch.php",// куда отправлять 
      type: "POST", // тип отправки
      data: ({num1: id,num3: k}), // отправляем id и имя
      dataType: "html", 
      beforeSend: funcBefore, 
      success:  function(data){// тут принимает ответ от php
               // тут получаем ответ
               alert(data);// должно выйти сообщение данные записаны 
          }

      } 
     });

// вот эти функция нужны чтобы всё правильно работало 
function funcBefore () { 
    $("#information").text ("Ожидание данных...") 
   }
   function funcSuccess (data) { 
   }


<?php 

$mysqli = new mysqli ("localhost", "имя бд", "пар", "имя бд"); // подключение к базе данных
$mysqli->query ("SET NAMES 'utf8' "); // кодировка
// тут мы принимаем данные 
 $w=$_POST['num1']; // id 
 $w1=$_POST['num3']; //  имя



$mysqli->query ("UPDATE `название таблицы` SET `name` = '$w1' WHERE `название таблицы`.`id` = $w"); // записываем данные 

echo "данные записаны";

$mysqli->close();// закрытие бд
 ?>
READ ALSO
CreateProcess : APPCRASH : Windows 7 x64

CreateProcess : APPCRASH : Windows 7 x64

Запускал по-разному, те

141
Как добавить пустой массив в массив?

Как добавить пустой массив в массив?

Как на С++ будут выглядеть следующие строчки написанные на Python:

145
Как заменить каждый элемент матрицы на среднее арифметическое?

Как заменить каждый элемент матрицы на среднее арифметическое?

Дана квадратная матрица и число nЗаменить каждый элемент матрицы на среднее арифметическое элементов квадрата размера 2n+1 с центром в данном...

156
Ошибка компиляции No Target Architecture

Ошибка компиляции No Target Architecture

Хочу начать дебагинг проекта, написал простенькую тестовую функцию в классе которая взаимодействует с Windows APIКонечный компютер x86

138