Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用链接发布数据_Php_Html - Fatal编程技术网

Php 如何使用链接发布数据

Php 如何使用链接发布数据,php,html,Php,Html,我有一个数据库,里面有某条街上每户人家的住户。我有一个“house view”php网页,当使用“post”给出房屋编号时,可以显示单个房屋和住户。我还有一个“街景”网页,上面有一个房屋清单。我想知道的是,你是否可以在街景上有链接,可以链接到房屋视图,并同时发布房屋编号,而不必为每一个设置表单 关于我只会使用查询字符串中的一个值将所需信息传递到下一页。我假设每个房屋都存储在自己的表中,并有一个“id”字段,例如房屋id。因此,当您循环浏览房屋并显示它们时,可以执行以下操作: <a href

我有一个数据库,里面有某条街上每户人家的住户。我有一个“house view”php网页,当使用“post”给出房屋编号时,可以显示单个房屋和住户。我还有一个“街景”网页,上面有一个房屋清单。我想知道的是,你是否可以在街景上有链接,可以链接到房屋视图,并同时发布房屋编号,而不必为每一个设置表单


关于

我只会使用查询字符串中的一个值将所需信息传递到下一页。

我假设每个房屋都存储在自己的表中,并有一个“id”字段,例如房屋id。因此,当您循环浏览房屋并显示它们时,可以执行以下操作:

<a href="house.php?id=<?php echo $house_id;?>">
  <?php echo $house_name;?>
</a>
function formSubmit(house_number)
{
  document.forms[0].house_number.value = house_number;
  document.forms[0].submit();
}
<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>


然后在house.php中,您可以使用
$\u get['id']
获取房屋id,使用
is\u numeric()
验证它,然后显示它的信息。

您不能通过
发出POST HTTP请求

只需打开您的
house.php
,在其中找到您的
$house=$\u POST['houseVar']
,并将其更改为:

isset($\u POST['houseVar'])$house=$\u POST['houseVar']:$house=$\u GET['houseVar']

streeview.php
中创建如下链接:


或者别的什么。我不知道你的文件和里面有什么。

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

<a href="house.php?id=<?php echo $house_id;?>">
  <?php echo $house_name;?>
</a>
function formSubmit(house_number)
{
  document.forms[0].house_number.value = house_number;
  document.forms[0].submit();
}
<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>
然后在PHP中循环浏览门牌号,并创建指向JavaScript函数的链接,如下所示:

<a href="house.php?id=<?php echo $house_id;?>">
  <?php echo $house_name;?>
</a>
function formSubmit(house_number)
{
  document.forms[0].house_number.value = house_number;
  document.forms[0].submit();
}
<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提交表单。

这是一个老线程,但为了防止任何人遇到,我认为最直接的解决方案是使用CSS使传统表单看起来像锚链接

@ben是正确的,您可以使用php和javascript发送带有链接的帖子,但让我们问问js做了什么——本质上,它创建了一个带有style='display:none'的表单,设置了一个带有value='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;
}
公共函数样式按钮($style,$text){
$html_str=“”;
$html_str.=“”;
$html_str.=“”;
$html_str.=“”;
返回$html_str;
}
然后在CSS id=“view\u form”set”中显示: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\u number=房屋号;
echo“document.forms[0].house_number.value=$house_number;document.forms[0].submit();”;
或者更安全的方法

$house_number = HOUSE_NUMBER;
echo "<script type='text/javascript'>document.forms[0].house_number.value = " . $house_number . "; document.forms[0].submit();</script>";
$house\u number=房屋号;
echo“document.forms[0].house_number.value=“$房子号码。“document.forms[0].submit();”;

这篇文章对我的项目很有帮助,因此我也想到分享我的经验。 需要注意的重要一点是,POST请求只能使用表单。 当我试图用ejs呈现页面时,我有一个类似的要求。我需要呈现一个带有项目列表的导航,这些项目本质上是超链接,当用户选择其中任何一个时,服务器会用适当的信息进行响应

因此,我基本上使用循环将每个导航项创建为一个表单,如下所示:

    开始循环。。。
  • 印度
  • 结束循环。
很好的解决方案,但我认为在这种情况下使用$\u GET会是一个更好的主意。顺便问一句,您是否使用大写字母a作为标记?哦-大写字母只是一个打字错误,真的-我没有足够快地松开shift键!:o) 我猜我可能误解了OP的问题,但我认为他是在寻找一种使用POST的方法。没错,也许他不知道这可以通过$_GET完成:)谢谢@Ben我的谷歌搜索“发送带有链接的POST数据”停止在这里!很好的一点,也许不是最有效但绝对最容易使用的方法。问题特别指出,POSTHow-come-Giving-Get-method答案在明确询问POST-method的地方是可以接受的