我有一个数据库,用于保存某个街道上每个房屋的居民。我有一个'房子视图'php网页,当使用'post'给出房屋号码时,可以显示个人房屋和居民。我还有一个“街景”网页,列出了房屋清单。我想知道的是,你是否可以在街景上找到链接到房屋视图的链接并同时发布房屋号码,而无需为每个建立一个表格?
此致
答案 0 :(得分:46)
如果要使用POST而不是GET传递数据,可以使用PHP和JavaScript的组合来完成,如下所示:
function formSubmit(house_number)
{
document.forms[0].house_number.value = house_number;
document.forms[0].submit();
}
然后在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>
这样你只需要一个表单,其隐藏变量会根据你点击的链接进行修改。然后JavasScript提交表单。
答案 1 :(得分:12)
我假设每个房子都存放在自己的表中,并且有一个'id'字段,例如house id。所以,当你穿过房屋并展示它们时,你可以这样做:
<a href="house.php?id=<?php echo $house_id;?>">
<?php echo $house_name;?>
</a>
然后在house.php中,您将使用$_GET['id']
获取房屋ID,使用is_numeric()
验证它,然后显示其信息。
答案 2 :(得分:8)
您无法通过<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>
或者别的什么。我只是不知道你的文件及其中的内容。
答案 3 :(得分:8)
这是一个旧线程,但万一有人遇到过我认为最直接的解决方案是使用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;
}
然后在CSS id =“view_form”中设置“display:inline;” 并在CSS id =“view_button”中设置如下:“background:none; border:none; color:#fff; cursor:pointer”
答案 4 :(得分:3)
我只是使用查询字符串中的值将所需信息传递到下一页。
答案 5 :(得分:0)
我们应该让每个人都更容易,因为你可以简单地将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>";
答案 6 :(得分:0)
这篇文章对我的项目很有帮助,因此我也想分享自己的经验。 需要注意的基本事情是,仅通过表单可以进行POST请求。 我有一个类似的要求,因为我试图用ejs渲染页面。我需要呈现一个导航,其中包含基本上是超链接的项目列表,并且当用户选择其中的任何一个时,服务器都会以适当的信息进行响应。
所以我基本上使用如下循环创建了每个导航项作为表单:
interface State {}
React.Component<Props, State>
它要做的是创建一个带有隐藏输入的表单,并为其分配一个与按钮上的文本相同的值。 因此,最终用户只能从按钮上看到文本,并且当单击该按钮时,它将向服务器发送发布请求。
请注意,输入框的值参数和Button文本完全相同,并且是使用ejs传递的值,为了使代码简单,我在上面的示例中未显示。
这是导航的屏幕截图... enter image description here