如何使用链接发布数据

How*_*May 20 html php

我有一个数据库,用于保存某个街道上每个房子的居民.我有一个'房子视图'php网页,当使用'post'给出房屋号码时,可以显示个人房屋和居民.我还有一个"街景"网页,列出了房屋清单.我想知道的是,你是否可以在街景上找到链接到房屋视图的链接并同时发布房屋号码,而无需为每个房间设置表格?

问候

Ben*_*Ben 47

如果要使用POST而不是GET传递数据,可以使用PHP和JavaScript的组合来完成,如下所示:

function formSubmit(house_number)
{
  document.forms[0].house_number.value = house_number;
  document.forms[0].submit();
}
Run Code Online (Sandbox Code Playgroud)

然后在PHP中循环遍历house-numbers,并创建指向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>
Run Code Online (Sandbox Code Playgroud)

这样你只需要一个表单,其隐藏变量将根据你点击的链接进行修改.然后JavasScript提交表单.

  • 谢谢@Ben我的谷歌搜索"发送带链接的帖子数据"在这里停止了! (2认同)

Cli*_*ote 13

我假设每个房子都存放在自己的表中并且有一个'id'字段,例如house id.因此,当您遍历房屋并显示它们时,您可以执行以下操作:

<a href="house.php?id=<?php echo $house_id;?>">
  <?php echo $house_name;?>
</a>
Run Code Online (Sandbox Code Playgroud)

然后在house.php中,您将获得房屋ID,使用$_GET['id']验证is_numeric(),然后显示其信息.

  • 问题具体说是POST (25认同)
  • 在明确询问POST方法的地方,如何接受Giving Get Method的答案 (7认同)

Ser*_*sov 8

您不能通过发出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像这样的make链接中:

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

或者是其他东西.我只是不知道你的文件和里面的内容.


bro*_*ook 8

这是一个老线程,但万一有人遇到过,我认为最直接的解决方案是使用CSS使传统形式看起来像一个锚链接.

@ben是正确的你可以使用php和javascript发送带有链接的帖子,但是让我们问一下js的作用 - 本质上它创建了一个带有style ='display:none'的表单设置一个带有value ='的输入/文本行什么'然后提交它.

但是你可以通过制作表格来跳过这一切.在输入/文本行上设置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;
}
Run Code Online (Sandbox Code Playgroud)

然后在CSS id ="view_form"中设置"display:inline;" 并在CSS id ="view_button"中设置为:"background:none; border:none; color:#fff; cursor:pointer"