首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么当我点击提交按钮时,isset($_POST['like'])不起作用?

为什么当我点击提交按钮时,isset($_POST['like'])不起作用?
EN

Stack Overflow用户
提问于 2019-09-28 13:05:30
回答 2查看 86关注 0票数 0

我的POST方法在这段代码中不起作用,但如果我将它改为GET方法,那么它就可以正常工作。

这是我的代码。如果您将其更改为GET,则可以很好地工作。即使有了POST,它也会显示数据库中的点赞,但当我点击点赞按钮时,它不会添加更多的点赞。

代码语言:javascript
复制
<form action="" method="POST">
    <input type="hidden" name="blogID" value=<?php echo $blogID;?> />
    <input id="likeButton" <?php echo isset($_POST["like"]) ? "disabled" : "";?> type = "submit" value = "Click to Like this Article" name="like"/> <br><br>
    </form>      
    <br>    

    <?php 

    $pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0';

    if($pageWasRefreshed )
    {
        $likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID"; 
            $likes = $conn->query($likesQuery); 
            if ($likes->num_rows > 0) {
                // output data of each row
                while($row2 = $likes->fetch_assoc()) {
                    echo $row2["likes"] . " Likes <br> <br>";
                }
            } else {
                echo "0 Likes";
            }
    }

    else{
        if(isset($_POST['like'])) {
            $blogID=$_POST['blogID'];
            $likesQuery2 = "UPDATE blogstatus set likes = likes+1 where blogID=$blogID";
            $conn->query($likesQuery2);
            $likesQuery3 = "SELECT likes FROM blogstatus where blogID=$blogID"; 
            $likes3 = $conn->query($likesQuery3); 

            if ($likes3->num_rows > 0) {
                // output data of each row
                while($row = $likes3->fetch_assoc()) {
                    echo $row["likes"] . " Likes <br> <br>";
                }
            } else {
                echo "0 Likes";
            }
        }
        else{
            $likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID"; 
            $likes = $conn->query($likesQuery); 
            if ($likes->num_rows > 0) {
                // outputz data of each row
                while($row2 = $likes->fetch_assoc()) {
                    echo $row2["likes"] . " Likes <br> <br>";
                }
            } else {
                echo "0 Likes";
            }
        }
    }   
    ;?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-28 14:05:01

好了,问题不在于isset本身,而在于$pageWasRefreshed始终为真,因此无法达到您的$_POST条件

试着把你的$_POST条件放在第一位,我想它会工作得很好

代码语言:javascript
复制
$pageWasRefreshed = isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0';
if(isset($_POST['like'])) {
    $blogID=$_POST['blogID'];
    $likesQuery2 = "UPDATE blogstatus set likes = likes+1 where blogID=$blogID";
    $conn->query($likesQuery2);
    $likesQuery3 = "SELECT likes FROM blogstatus where blogID=$blogID"; 
    $likes3 = $conn->query($likesQuery3); 

    if ($likes3->num_rows > 0) {
        // output data of each row
        while($row = $likes3->fetch_assoc()) {
            echo $row["likes"] . " Likes <br> <br>";
        }
    } else {
        echo "0 Likes";
    }
} else if($pageWasRefreshed ){
    $likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID"; 
    $likes = $conn->query($likesQuery); 
    if ($likes->num_rows > 0) {
        // output data of each row
        while($row2 = $likes->fetch_assoc()) {
            echo $row2["likes"] . " Likes <br> <br>";
        }
    } else {
        echo "0 Likes";
    }
}
else {
    $likesQuery = "SELECT likes FROM blogstatus where blogID=$blogID"; 
    $likes = $conn->query($likesQuery); 
    if ($likes->num_rows > 0) {
        // outputz data of each row
        while($row2 = $likes->fetch_assoc()) {
            echo $row2["likes"] . " Likes <br> <br>";
        }
    } else {
        echo "0 Likes";
    }
}
票数 -1
EN

Stack Overflow用户

发布于 2019-09-28 13:31:16

在else部分中,您试图检查表单中不存在的isset($_POST['like'])字段。更新

代码语言:javascript
复制
else{
        if(isset($_POST['like'])) {
            $blogID=$_POST['blogID'];

代码语言:javascript
复制
else{ 
        if(isset($_POST['blogID'])) {
            $blogID=$_POST['blogID'];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58143519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档