Как вы публикуете данные со ссылкой

У меня есть база данных, в которой хранятся жители каждого дома на определенной улице. У меня есть веб-страница php «вид дома», на которой можно отображать отдельный дом и жителей, если указать номер дома с помощью «сообщения». У меня также есть веб-страница с изображением улиц, на которой есть список домов. Я хочу знать, могут ли вы иметь ссылки в просмотре улиц, которые будут ссылаться на вид дома и в то же время публиковать номер дома без создания формы для каждого?

С Уважением

Стоит ли изучать 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 и хотите разрабатывать...
21
0
125 362
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Я бы просто использовал значение в строке запроса, чтобы передать необходимую информацию на следующую страницу.

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

Я предполагаю, что каждый дом хранится в отдельной таблице и имеет поле id, например, идентификатор дома. Итак, когда вы просматриваете дома и отображаете их, вы можете сделать что-то вроде этого:

<a href = "house.php?id=<?php echo $house_id;?>">
  <?php echo $house_name;?>
</a>

Затем в house.php вы получите идентификатор дома с помощью $_GET['id'], подтвердите его с помощью is_numeric() и затем отобразите его информацию.

В вопросе конкретно написано POST

Menasheh 20.11.2016 17:35

Почему принимается ответ Giving Get Method, если он явно спрашивает о методе POST

M.A.K. Ripon 21.10.2017 09:30

<a href = "some_script.php">some_script</a> не может выполнять запросы POST HTTP.

Просто откройте свой house.php, найдите в нем место, где у вас $house = $_POST['houseVar'], и измените его на:

isset($_POST['houseVar']) ? $house = $_POST['houseVar'] : $house = $_GET['houseVar']

А в streeview.php сделать такие ссылки:

<a href = "house.php?houseVar=$houseNum"></a>

Или что-то другое. Я просто не знаю ваших файлов и того, что внутри них.

Если вы хотите передать данные с помощью POST вместо GET, вы можете сделать это, используя комбинацию PHP и JavaScript, например:

function formSubmit(house_number)
{
  document.forms[0].house_number.value = house_number;
  document.forms[0].submit();
}

Затем в PHP вы перебираете номера домов и создаете ссылки на функцию JavaScript, например:

<form action = "house.php" method = "POST">
<input type = "hidden" name = "house_number" value = "-1">

<?php
foreach ($houses as $id => name)
{
    echo "<a href=\"javascript:formSubmit($id);\">$name</a>\n";
}
?>
</form>

Таким образом, у вас будет только одна форма, скрытые переменные которой изменяются в зависимости от того, по какой ссылке вы нажимаете. Затем JavaScript отправляет форму.

Хорошее решение, но я думаю, что в этом случае лучше использовать $ _GET.

Click Upvote 09.01.2009 02:10

кстати, вы используете заглавную A для тега <a href>?

Click Upvote 09.01.2009 02:14

О, на самом деле заглавная буква была просто опечаткой - я не отпустил клавишу Shift достаточно быстро! : o) Наверное, я неправильно понял вопрос ОП, но я подумал, что он специально искал способ сделать это с помощью POST.

Ben 09.01.2009 02:22

Правда, возможно, он не знал, что это можно сделать и через $ _GET :)

Click Upvote 09.01.2009 02:35

Спасибо, @Ben, мой поиск в Google по запросу "отправить данные сообщения со ссылкой" остановился здесь!

Web_Designer 20.07.2011 03:12

@Ben Хорошее решение. У меня есть аналогичный случай, и он включает отправку данных POST на страницу на другом сайте. Другие высказывания «использовать GET» не помогли, поэтому спасибо за ответ на вопрос. Вы получаете мой "Click Upvote" старомодным способом ... зарабатывая его.

KiloVoltaire 19.12.2015 21:47

Это старый поток, но на всякий случай, я думаю, что самым прямым решением будет использование CSS, чтобы традиционная форма выглядела как якорная ссылка.

@ben верен, вы можете использовать php и javascript для отправки сообщения со ссылкой, но позвольте спросить, что делает js - по сути, он создает форму со style = 'display: none' устанавливает строку ввода / текста со значением = ' something ', а затем отправляет его.

однако вы можете пропустить все это, создав форму. установка style = 'display: none' в строках ввода / текста (а не в самой форме, как указано выше), а затем с помощью CSS, чтобы кнопка выглядела как обычная ссылка.

вот пример, который я использую:

в классе PHP,

public function styleButton($style,$text){
    $html_str = "<form id='view_form' action='".$_SERVER['REQUEST_URI']."' method='post' >";
    $html_str .= "<input style='display:none;' name='list_style' type='text' value='".$style."' >";
    $html_str .= "<input id='view_button' type='submit' value='".$text."' >";
    $html_str .= "</form>";
    return $html_str;
}

Затем в CSS id = "view_form" установите "display: inline;" а в CSS id = "view_button" установите что-то вроде: "background: none; border: none; color: #fff; cursor: pointer"

хороший момент, возможно, не самый эффективный, но определенно самый простой в использовании метод.

Timothy Coetzee 26.06.2016 06:17

Мы должны сделать все проще для всех, потому что вы можете просто объединить JS с PHP. Комбинировать PHP и JS довольно просто.

$house_number = HOUSE_NUMBER;
echo "<script type='text/javascript'>document.forms[0].house_number.value = $house_number; document.forms[0].submit();</script>";

Или более безопасный способ

$house_number = HOUSE_NUMBER;
echo "<script type='text/javascript'>document.forms[0].house_number.value = " . $house_number . "; document.forms[0].submit();</script>";

Этот пост был полезен для моего проекта, поэтому я тоже подумал о том, чтобы поделиться своим опытом. Важно отметить, что запрос POST возможен только с формой. У меня было аналогичное требование, когда я пытался отобразить страницу с помощью ejs. Мне нужно было отобразить навигацию со списком элементов, которые по сути были бы гиперссылками, и когда пользователь выбирает любой из них, сервер отвечает соответствующей информацией.

поэтому я в основном создал каждый из элементов навигации как форму, используя следующий цикл:

<ul>
    begin loop...
        <li>
            <form action = "/" method = "post">
                <input type = "hidden" name = "country" value = "India"/>
                <button type = "submit" name = "button">India</button>
            </form>               
        </li>
    end loop.
</ul>

что он сделал, так это создал форму со скрытым вводом со значением, назначенным таким же, как текст на кнопке. Таким образом, конечный пользователь увидит только текст от кнопки и при нажатии отправит на сервер почтовый запрос.

Обратите внимание, что параметр значения поля ввода и текст кнопки точно такие же, и значения были переданы с использованием ejs, которые я не показывал в этом примере выше, чтобы код оставался простым.

вот скриншот навигации ... введите описание изображения здесь

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