@MidNightElf_1_10
неуверенный в себе фронтендер который хочет в бэк

Как отправить текст НЕ из inputa POST?

я пытаюсь отправить просто текст из dom элемента на сервер:
вот так:
<form action="main.php" method="POST">
			<ol>
				<li name="first_li">0001</li>
				<li>0002</li>
				<li>0003</li>
				<li>0004</li>
				<li>0005</li>
			</ol>
			<input type="submit" value="submit">
		</form>

и принимаю его с php:
<?php
	ini_set('display_errors', 1);
	ini_set('display_startup_errors', 1);
	error_reporting(E_ALL);

	$first_name = "";
	if (isset($_POST["first_li"]))
		$first_name = $_POST["first_li"];

	echo $first_name;

Но на страницу ничего не выводится. А если я поставлю в li элемент input с типом text, то это будет поля для ввода, а мне нужно отправить текст который просто в элементе, как это сделать? Гуглил ничего не нашел
  • Вопрос задан
  • 833 просмотра
Решения вопроса 1
@aftar
1) Можешь создать input type hidden, который не будет виден на странице.
2) Если отправляешь ajax можешь добавить объект.

$("form").submit(function(event) {
        event.preventDefault();
        var data = $(this).serializeArray(),
            thisForm = $(this),
            thisBtn = thisForm.find("button");
        data.push({name: 'my_input', value: 'test'}); // Добавить поле
        $.ajax({
            url: 'php/main.php',
            type: 'POST',
            data: data,
            success: function (data) {
                console.log('Успешно отправлено');
            },
            error: function (data) {
                console.error('Произошла ошибка');
            }
        });
    });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Существует набор стандартных элементов форм <button>, <input>, <object>, <select>, <textarea>
Браузеры умеют отправлять их содержимое на сервер при отправке формы.

Если ты хочешь отправить что-то нестандартное, то можешь либо добавить скрытые поля типа input[type=hidden] или собрать данные для post-запроса самостоятельно в объект или в FormData и отправить через fetch или xhr
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
а мне нужно отправить текст который просто в элементе
Зависит от задачи, а то похоже что вы что-то обычное пытаетесь сделать через... не так.

1) Яваскриптом: При субмите обходим нужные элементы, формируем из них нужные данные и отправляем на сервер (либо создаем налету инпут, либо отправляем аяксом, по сути одно и то же).
2) Добавляем скрытые инпуты, дублирующие содержимое элементов. Тогда яваскрипт не нужен, все будет работать автоматически.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы