Как отправить данные из html - формы на сервер?
Я абсолютный новичок в вебе, и у меня возник вопрос: допустим, у меня есть сайт на виртуальном хостинге, естественно с хранилищем файлов и базой данных MySql. На одной из страниц сайта есть форма ввода текста с кнопкой "отправить":
<form action = '?' method = 'post'>
<input type = 'text'>
<input type = 'submit' value = "Send">
</form>
Как реализовать отправку введенного пользователем текста на сервер по нажатию на "отправить"? Я хотел бы обработать этот текст так или иначе, и, например, сохранить в текстовом файле где-то на сервере (или же сохранить в базу данных). Можно ли сделать это посредством JavaScript-a?
Заранее большое спасибо!
Ответы (2 шт):
Вообще это делается при прмощи серверного языка типа php. В методе action="" вы прописываете адрес где лежит код который должен принимать и обрабатывать данные формы. На javaScript вы можете перехватить данные отправляемые с формы, но опять же их нужно будет передавать на сервер для обработки(php, node.js и т.д.).
у input есть 3 атрибута type name value
если указать value то в форме будет отправляться его значение обычно используют в скрытых input
но чтобы отправилось значение которое ввели в input value указывать не нужно
это будет выглядеть так
<form action = 'server.php' method = 'post'>
<input type = 'text' name="your_name">
<input type = 'submit' value = "Send">
</form>
name="your_name" преобразуется в GET параметр
то есть в ссылку которая выглядит так https://site.com/server.php?your_name=то_что_ввели_в_инпут
ну а потом эта ссылка отправляется в ajax запросе через js
document.addEventListener('DOMContentLoaded', function () {
document.addEventListener('submit', function (e) {
e.preventDefault();
var urlsuccess = new URL("https://site.com/server.php");
var $that = e.target;
var $inputs = $that.querySelectorAll('input');
var $select = $that.querySelectorAll('select');
$inputs.forEach(function(input) {
urlsuccess.searchParams.set(input.name, input.value);
})
$select.forEach(function(select) {
urlsuccess.searchParams.set(select.name, select.value);
})
console.log(urlsuccess + "")
var xhr = new XMLHttpRequest();
xhr.withCredentials = false;
xhr.open("POST", urlsuccess, true);
xhr.send();
})
})
затем в server.php. мы ловим эти GET параметры
<?php
echo $_POST['your_name'];
а потом уже идет отправка в базу или запись в файл !