【问题标题】:self submit form and cookie PHP自提交表单和cookie PHP
【发布时间】:2014-04-23 00:44:27
【问题描述】:

我有一个从数据库获取信息的表单,在用户注册后,他们会被发送到他们从单选按钮中进行选择的页面,每次选择后我想在第一次选择“总共 10”时保存选择页面显示,显示第一个选择,之后什么都没有。 $count 保持在 1“不递增”有人可以查看我的代码并告诉我原因。

<?php       
if(isset($_COOKIE['counter'])){
    $count = isset($_COOKIE['counter']);
    print($count);
}
else{
    $count = 1;
    print("Shouldn't see this after first click");
}

$connection = mysqli_connect("localhost", "root", "", "worldcup2014db");
// Check connection
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$querySelection = "SELECT * from teamselections where id = '$count'";

$resultSelection = mysqli_query($connection , $querySelection);

        print("<form method='post' action='selection.php'>");

        while($row = mysqli_fetch_array($resultSelection)){
            $t1 = $row['team1id'];
            $t2 = $row['team2id'];
            $t3 = $row['team3id'];
            $t4 = $row['team4id'];



                if($row['teamid'] == $t1){
                    $tName1 = $row['name'];
                }
                if($row['teamid'] == $t2){
                    $tName2 = $row['name'];
                }
                if($row['teamid'] == $t3){
                    $tName3 = $row['name'];
                }
                if($row['teamid'] == $t4){
                    $tName4 = $row['name'];
                }                   
            }

            print("<input type='radio' id='rd1' name='teamname' value='$t1'>$tName1</input>");
            print("<input type='radio' id='rd2' name='teamname' value='$t2'>$tName2</input>");
            if($count > 4){
                print("<input type='radio' id='rd3' name='teamname' value='$t3'>$tName3</input>");
                print("<input type='radio' id='rd4' name='teamname' value='$t4'>$tName4</input>");  
            }

            print("<input type=\"submit\" name=\"submit\" value=\"Continue\">");                            
        }
        $count++; // increment count
        print("</form>");

        setcookie('counter', $count);
        print($count);

        mysqli_close($connection);          

?>

提前致谢

格曼

【问题讨论】:

    标签: javascript php jquery cookies


    【解决方案1】:

    您的$count++;while($row = mysqli_fetch_array($resultSelection)){ 循环之外

    像这样:

            print("<input type=\"submit\" name=\"submit\" value=\"Continue\">");  
            $count++; // increment count                          
        }
        print("</form>");
    

    正如@Devon 所说,第三行应该是:

    $count = $_COOKIE['counter']; 
    

    【讨论】:

    • 另外,他的$count = isset($_COOKIE['counter']); 不会打印计数,但会显示是否设置了计数。应该是$count = $_COOKIE['counter']
    • Thks.. 将其添加到 anwser
    • 我确实把它放在里面,但没有任何区别,所以把它放在外面,把它移回while循环里面,还是一样。
    • 检查第三行..计数未正确分配。
    • @Gman isset() 将仅返回 1(如果设置了变量),如果未设置变量,则返回 0。您没有打印计数器的值。
    猜你喜欢
    • 2016-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多