Как вы отправляете данные со ссылкой
У меня есть база данных, в которой проживают жители каждого дома на определенной улице. У меня есть веб-страница php на домашнем просмотре, которая может отображать отдельный дом и жителей, когда ему присваивается номер дома, используя "пост". У меня также есть веб-страница "Просмотр улиц", в которой приводится список домов. Что я хочу знать, если у вас есть ссылки на улицу, которые будут ссылаться на вид дома и одновременно вывести номер дома, не настраивая форму для каждого?
Привет
Ответы
Ответ 1
Я предполагаю, что каждый дом хранится в собственной таблице и имеет поле "id", например id дома. Поэтому, когда вы просматриваете дома и показываете их, вы можете сделать что-то вроде этого:
<a href="house.php?id=<?php echo $house_id;?>">
<?php echo $house_name;?>
</a>
Затем в house.php вы получите идентификатор дома, используя $_GET['id']
, подтвердите его с помощью is_numeric()
, а затем отобразите его информацию.
Ответ 2
Если вы хотите передать данные с помощью 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>
Таким образом, у вас есть только одна форма, чья скрытая переменная (переменная) изменяется по той ссылке, на которую вы нажимаете. Затем JavasScript отправляет форму.
Ответ 3
Это старый поток, но на всякий случай кто-то сталкивается с этим, я считаю, что самым прямым решением является использование CSS, чтобы традиционная форма выглядела как привязка.
@ben правильно, вы можете использовать php и javascript для отправки сообщения со ссылкой, но давайте спросить, что делает js - по существу он создает форму со стилем = 'display: none' устанавливает строку ввода/текста с value = 'something', а затем отправляет его.
однако вы можете пропустить все это, сделав форму. set 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"
Ответ 4
Вы не можете выполнить POST HTTP-запросы <a href="some_script.php">some_script</a>
Просто откройте house.php
, найдите там, где у вас $house = $_POST['houseVar']
, и измените его на:
isset($_POST['houseVar']) ? $house = $_POST['houseVar'] : $house = $_GET['houseVar']
И в streeview.php
создайте такие ссылки:
<a href="house.php?houseVar=$houseNum"></a>
Или что-то еще. Я просто не знаю ваших файлов и что внутри.
Ответ 5
Я бы просто использовал значение в querystring для передачи необходимой информации на следующую страницу.
Ответ 6
Мы должны сделать все проще для всех, потому что вы можете просто комбинировать 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>";