Итак, я хочу создать свою страницу таким образом, чтобы, когда пользователь оставляет комментарий, страница не обновлялась, а комментарий отправлялся и вставлялся в базу данных.
Как таковой Мне нужно отправить сам комментарий на сервер, и я прочитал, что лучший способ сделать это - использовать JavaScript FormData. Проблема в том, что я не могу заставить его что-то отправить, и я хочу это отправить серверу данные, записанные в элементе type = "input". Ранее я делал это, используя способ по умолчанию, предоставленный самим элементом формы HTML: action = link method = "post".
Поэтому я хочу добавить идентификатор кампании в URL и отправить комментарий на сервер с помощью $ _POST и JavaScript DataForm, если это возможно, поэтому он знает кампанию, в которой должен быть этот комментарий.
У меня может быть несколько кампаний, и все они будут генерироваться «динамически», поэтому скажем, с PHP вместе с JavaScript скриптами для управления их поведением, поэтому я повторил все это.
<form id="commentForm' . $row['id'] . '" name="commentForm" method="post" class="greyContainerAllCampaigns">
<input id="comment' . $row['id'] . '" name="CommentContent" max="250" title="max 250 alphanumeric and ,.?: etc chars" required pattern='.' \'[A-Za-z0-9 .,!?:\[\]()"-+]+\' ' .'class="inputBox" type="text" placeholder="write here">
<button id="commentB' . $row['id'] . '" class="submitButton" type="submit" name="Comment">Comment</button></form>';
Это сценарий JavaScript, который я пытался написать, чтобы сделать это:
document.getElementById("commentB' . $row['id'] . '").addEventListener("click", commentFunction);
function commentFunction() {
fetch(\'http://localhost:80/proiect/GaSM/public/Campaign/comment/'. $row['id'] . '\', {
method: \'POST\',
body : new FormData(document.getElementById("commentForm' . $row['id'] . '")),
headers: {\'Content-Type\':\'multipart/form-data\'}
});
alert ("You left a comment!");
}
</script>';
Я пытался получить результат на сервере с помощью $ _POST ['CommentContent'], но ничего не получаю, ничего не отправляется.
Я, очевидно, делаю что-то не так с тем, как я пытаюсь отправить его через POST на сервер в сценарии JavaScript, но я не знаю что. Заранее спасибо!