按下按钮时不进入if语句

时间:2019-06-03 11:37:59

标签: php html

我有一个问题。我需要代码才能在按下按钮时进入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']} - &euro;{$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中的内容

1 个答案:

答案 0 :(得分:0)

您已经在表单的上下文中使用了HTML锚标记(链接)。锚标记不是表单元素。如果您单击这样的链接,它将不会提交表格。链接的目的是在您单击浏览器时将浏览器重定向到另一个网站(URL)。如果您想提交包含某些输入字段的表单,而我的代码中根本看不到这些表单,那么您将需要使用buttoninput[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字符串中。使用参数化的准备好的语句,而不是手动构建查询。它们由PDOMySQLi提供。