我有一个问题。我需要代码才能在按下按钮时进入if语句,但事实并非如此。
我尝试同时使用get和post
<form method="get" action="index.php">
<div class="card" style="width: 18rem;">
<?php
echo "<img
src=\"images/{$row['image']}\" alt=\"\" width=\"200\">";
?>
<div class="card-body">
<h5 class="card-title"><?php echo "
{$row['type']} in {$row['town']} - €{$row['price']}" ?></h5>
<p class="card-text"></p>
<a href="#" class="btn btn-primary"
name="favourites" id="favourites">Add to Wishlist</a>
</div>
</div>
</form>
<?php
if (isset($_GET['favourites'])) {
echo "hi";
$add_to_wishlist_query = "INSERT INTO
tbl_favourite (userId, propertyId) VALUES ({$_SESSION['loggedin']},
propertyId)";
mysqli_query($link,
$add_to_wishlist_query);
echo "<div class='alert alert-
success'>Property added to wishlist!</div>";
}
?>
我需要它在进入if语句时执行if中的内容
答案 0 :(得分:0)
您已经在表单的上下文中使用了HTML锚标记(链接)。锚标记不是表单元素。如果您单击这样的链接,它将不会提交表格。链接的目的是在您单击浏览器时将浏览器重定向到另一个网站(URL)。如果您想提交包含某些输入字段的表单,而我的代码中根本看不到这些表单,那么您将需要使用button
或input[type=submit]
。当您单击表单内部的按钮时,浏览器将提交整个表单,其中包含所有输入。
但是,如果您只想链接到网站的其他部分(不太可能查看您的PHP代码),则可以将href
属性值与查询字符串一起使用。
<a href="?favourites=1" class="btn btn-primary" id="favourites">Add to Wishlist</a>
看到附加的?favourites=1
吗? PHP将其解释为:
$_GET['favourites'] = 1;
除非您附加了一些JavaScript事件,否则当您单击链接时,#
不会对您的页面执行任何操作。
无关的注释。 SQL看起来是完全错误的,您永远不要将PHP变量放在SQL字符串中。使用参数化的准备好的语句,而不是手动构建查询。它们由PDO或MySQLi提供。