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






Я бы просто использовал значение в строке запроса, чтобы передать необходимую информацию на следующую страницу.
Я предполагаю, что каждый дом хранится в отдельной таблице и имеет поле id, например, идентификатор дома. Итак, когда вы просматриваете дома и отображаете их, вы можете сделать что-то вроде этого:
<a href = "house.php?id=<?php echo $house_id;?>">
<?php echo $house_name;?>
</a>
Затем в house.php вы получите идентификатор дома с помощью $_GET['id'], подтвердите его с помощью is_numeric() и затем отобразите его информацию.
Почему принимается ответ Giving Get Method, если он явно спрашивает о методе POST
<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.
кстати, вы используете заглавную A для тега <a href>?
О, на самом деле заглавная буква была просто опечаткой - я не отпустил клавишу Shift достаточно быстро! : o) Наверное, я неправильно понял вопрос ОП, но я подумал, что он специально искал способ сделать это с помощью POST.
Правда, возможно, он не знал, что это можно сделать и через $ _GET :)
Спасибо, @Ben, мой поиск в Google по запросу "отправить данные сообщения со ссылкой" остановился здесь!
@Ben Хорошее решение. У меня есть аналогичный случай, и он включает отправку данных POST на страницу на другом сайте. Другие высказывания «использовать GET» не помогли, поэтому спасибо за ответ на вопрос. Вы получаете мой "Click Upvote" старомодным способом ... зарабатывая его.
Это старый поток, но на всякий случай, я думаю, что самым прямым решением будет использование 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"
хороший момент, возможно, не самый эффективный, но определенно самый простой в использовании метод.
Мы должны сделать все проще для всех, потому что вы можете просто объединить 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, которые я не показывал в этом примере выше, чтобы код оставался простым.
вот скриншот навигации ... введите описание изображения здесь
В вопросе конкретно написано POST