@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, то это будет поля для ввода, а мне нужно отправить текст который просто в элементе, как это сделать? Гуглил ничего не нашел
  • Вопрос задан
  • 834 просмотра
Решения вопроса 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) Добавляем скрытые инпуты, дублирующие содержимое элементов. Тогда яваскрипт не нужен, все будет работать автоматически.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы