Как добавить входное значение в URL в php

У меня вопрос по php, а я не эксперт в php.

1. У меня есть html-страница с одной формой, включающей текстовое поле и кнопку отправки.

2. У меня есть такой статический целевой URL: https://example.com/invoice/XXXXXXXXXXXXXX

ХХХХХХХХХХХ — это просто цифры и 14 символов.

*** Мне нужно, чтобы мой клиент ввел свой 14-значный номер в текстовую форму ввода, и когда он отправит, перейдет к целевому URL-адресу. Я также хочу проверить форму ввода для ввода номеров.

Я делаю образец формы, как это, но не работает:

        <form action = "https://example.com/invoice" class = "pey-form" method = "get">
          <input type = "text" id = "peyid" name = "peyid" oninput = "this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1');" maxlength = "14" ><br><br>
          <input type = "submit" value = "submit">
        </form>

Что я могу сделать?

В этом случае это не имеет ничего общего с PHP, используйте javascript для прослушивания отправки формы и при отправке добавьте входное значение к URL-адресу действия формы.

hassan 25.10.2022 11:50

Можно отправить скрипт php для проверки/подтверждения ввода, а затем перенаправить на нужную страницу/URL

brombeer 25.10.2022 11:52

как я могу это сделать? я не настолько эксперт

Hadi 25.10.2022 12:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как сказал Хассан, вы можете сделать это только с помощью javascript. Это перенаправит на URL-адрес, который вы хотели.

document.querySelector("form").onsubmit = function(){
    this.setAttribute("action",this.getAttribute("action")+"/"+document.querySelector("[name=peyid]").value);
}

Например Если document.querySelector("[name=peyid]").value = 12345678901234 URL будет выглядеть https://example.com/invoice/12345678901234?peyid=12345678901234

Поэтому, если вам просто нужно перенаправить на этот URL-адрес, вам даже не нужна форма

<input type = "text" id = "peyid" name = "peyid" oninput = "this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1');" maxlength = "14" ><br><br>
<input type = "button" value = "submit">

<script>
    document.querySelector("[type=button]").onclick = function(){
        location.href = `https://example.com/invoice/${document.querySelector("[name=peyid]").value}`;
    }
</script>

Спасибо, вторая часть меня тоже устроила. как я могу установить условие для пустого текстового поля, которое выдает ошибку или не работает?

Hadi 25.10.2022 15:47

Вы можете просто использовать if else, чтобы сделать это. лайк if (value != "") location.href = "url"; else alert("error");

dollar 25.10.2022 18:24

<script> document.querySelector("[type=button]").onclick = function(){ if ("[value != "") location.href = example.com/invoice/${document.querySelector ("[name=peyid]")‌​.value}; else alert("Пожалуйста, заполните поле"); } </script> Я установил это условие, но оно не работает

Hadi 26.10.2022 14:52

Вы объявили value как document.querySelector("[name=peyid]").value? Это должно работать document.querySelector("[type=button]").onclick = function(){ let value = document.querySelector("[name=peyid]").value; if (value != ""){ location.href = example.com/invoice/${value}; } else{ alert("Please Fill The Box"); } }

dollar 27.10.2022 03:30

Использование PHP — чтобы получить значение form, проверить его, применить к URL-адресу и перенаправить клиента в это место, используйте $_POST , preg_match() , интерполяцию строк и заголовок ().

/счет-фактура/index.php:

<?php

if ( isset($_POST['peyid']) && preg_match("/^\d{14}$/", $_POST['peyid']) ) {

    header("Location: http://www.example.com/invoice/{$_POST['peyid']}");
    exit;

}

?>
<html><head><title>oops</title></head><body>An error occurred.</body></html>

Другие вопросы по теме