php如何确保重新加载页面,并将echo更新为新值

php如何确保重新加载页面,并将echo更新为新值,php,phpmyadmin,Php,Phpmyadmin,我的网站的用户可以订阅他们的一些动物参加比赛。 我的代码工作得很好,但有一个大问题。当用户按下subscribe时,页面将重新加载,但由于isset位于按钮本身的回声之后,因此需要在按钮文本变为“subscribed”之前刷新页面。 正如您可能看到的,更改顺序会产生问题。 谁能帮我?我自己也别无选择。(我翻译了变量等) 我认为你必须使用输出缓冲。将ob_start()放在页面的开头,现在输出任何占位符,而不是真正的输入代码: [SUMBIT] 而不是: <input type='sub

我的网站的用户可以订阅他们的一些动物参加比赛。 我的代码工作得很好,但有一个大问题。当用户按下subscribe时,页面将重新加载,但由于isset位于按钮本身的回声之后,因此需要在按钮文本变为“subscribed”之前刷新页面。 正如您可能看到的,更改顺序会产生问题。 谁能帮我?我自己也别无选择。(我翻译了变量等)



我认为你必须使用输出缓冲。将ob_start()放在页面的开头,现在输出任何占位符,而不是真正的输入代码:

[SUMBIT]
而不是:

<input type='submit' ....
并用正确的代码替换提交按钮:

$content = str_replace('[SUBMIT]', 'Your actual submit button code here...', $content);
现在输出内容:

echo $content;

快速修复可以是javascript

echo '<span id="someid" >Subscribe</span>';
echo“订阅”;
换衣服的时候呢

echo "<script>document.getElementById('someid').innerHTML = 'Subscribed';</script>";
echo“document.getElementById('someid')。innerHTML='Subscribed';”;

今后我强烈建议您使用

您可以在页面上方使用您的邮政编码,然后加载您的页面。。。。 请使用如下代码:

 <?php
    if (isset($_POST['btnSubscribe1'])){

    $sqlCheck = "SELECT * FROM Competitionresults WHERE AnimalID='".$Animals[0]."'";
        $resultCheck = mysql_query($sqlCheck);
        if (mysql_num_rows($resultCheck) == 0){

            $sql1 = "INSERT INTO Competitionresuls (AnimalID, username) VALUES ('".$Animals[0]."','".$Username[0]."')";
           mysql_query($sql1);
           header('Location: samefilename.php');
           die;
         }

        }
    ?>
    <form action="" method="post" name="frmSubscribe">
    <?php
    $Counter = 0;
    $sql = "Select * from Animals where username='".$_SESSION['User']."' ";
    $result = mysql_query($sql);
    while($row=mysql_fetch_array($result)){

        echo $row['Animalname'];
        $Duiven[] = $row['AnimalID'];
        $Username[] = $row['username'];

        ?>
        <input type='submit' <?php echo "name= ".$Buttons[$Counter].""; ?> value='<?php 
        $sqlSubscribed = "SELECT * FROM Competitionresults WHERE AnimalID='".$Animals[$Counter]."'";
        $resultSubscribed = mysql_query($sqlSubscribed);
        if(mysql_num_rows($resultSubscribed) == 0){ echo "Subscribe";}
        else {echo "deregister";}
        ?>'><br/><?php
        $Teller++;
        }


        }


最简单的解决方案是将
isset
移动到顶部。只是想让你知道,在处理视图之后,动作应该始终是你处理的第一件事

<form action="" method="post" name="frmSubscribe">
<?php

if (isset($_POST['btnSubscribe1'])){

$sqlCheck = "SELECT * FROM Competitionresults WHERE AnimalID='".key($_GET)."'";
$resultCheck = mysql_query($sqlCheck);
if (mysql_num_rows($resultCheck) == 0){

$sql1 = "INSERT INTO Competitionresuls (AnimalID, username) VALUES ('".key($_GET)."','".$_SESSION['User']."')";
$result1 = mysql_query($sql1);
$row=mysql_fetch_array($result1);

}
}

$Counter = 0;
$sql = "Select * from Animals where username='".$_SESSION['User']."' ";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result)){

echo $row['Animalname'];
$Duiven[] = $row['AnimalID'];
$Username[] = $row['username'];

?>
<input type='submit' <?php echo "name= ".$Buttons[$Counter].""; ?> value='<?php 
$sqlSubscribed = "SELECT * FROM Competitionresults WHERE AnimalID='".$Animals[$Counter]."'";
$resultSubscribed = mysql_query($sqlSubscribed);
if(mysql_num_rows($resultSubscribed) == 0){ echo "Subscribe";}
else {echo "deregister";}
?>'><br/><?php
$Teller++;
}


+“我的代码工作得很好,但有一个大问题”啊,好吗?请不要发表无用的评论。问题不是代码不起作用,而是它没有立即显示代码已实现的功能。不,现在重定向没有用,因为您在执行操作后立即加载animalws。这将不起作用,因为isset的信息是在之后设置的,如果这么简单的话,我自己也会找到:)有什么问题吗?我看不出来,当你把它放在上面时,它会向服务器发送空值,这就是问题:pim担心你把代码弄得一团糟:)让我编辑它顺便说一句,Duiven不是英语。。。它的鸽子;)
 <?php
    if (isset($_POST['btnSubscribe1'])){

    $sqlCheck = "SELECT * FROM Competitionresults WHERE AnimalID='".$Animals[0]."'";
        $resultCheck = mysql_query($sqlCheck);
        if (mysql_num_rows($resultCheck) == 0){

            $sql1 = "INSERT INTO Competitionresuls (AnimalID, username) VALUES ('".$Animals[0]."','".$Username[0]."')";
           mysql_query($sql1);
           header('Location: samefilename.php');
           die;
         }

        }
    ?>
    <form action="" method="post" name="frmSubscribe">
    <?php
    $Counter = 0;
    $sql = "Select * from Animals where username='".$_SESSION['User']."' ";
    $result = mysql_query($sql);
    while($row=mysql_fetch_array($result)){

        echo $row['Animalname'];
        $Duiven[] = $row['AnimalID'];
        $Username[] = $row['username'];

        ?>
        <input type='submit' <?php echo "name= ".$Buttons[$Counter].""; ?> value='<?php 
        $sqlSubscribed = "SELECT * FROM Competitionresults WHERE AnimalID='".$Animals[$Counter]."'";
        $resultSubscribed = mysql_query($sqlSubscribed);
        if(mysql_num_rows($resultSubscribed) == 0){ echo "Subscribe";}
        else {echo "deregister";}
        ?>'><br/><?php
        $Teller++;
        }


        }
<form action="" method="post" name="frmSubscribe">
<?php

if (isset($_POST['btnSubscribe1'])){

$sqlCheck = "SELECT * FROM Competitionresults WHERE AnimalID='".key($_GET)."'";
$resultCheck = mysql_query($sqlCheck);
if (mysql_num_rows($resultCheck) == 0){

$sql1 = "INSERT INTO Competitionresuls (AnimalID, username) VALUES ('".key($_GET)."','".$_SESSION['User']."')";
$result1 = mysql_query($sql1);
$row=mysql_fetch_array($result1);

}
}

$Counter = 0;
$sql = "Select * from Animals where username='".$_SESSION['User']."' ";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result)){

echo $row['Animalname'];
$Duiven[] = $row['AnimalID'];
$Username[] = $row['username'];

?>
<input type='submit' <?php echo "name= ".$Buttons[$Counter].""; ?> value='<?php 
$sqlSubscribed = "SELECT * FROM Competitionresults WHERE AnimalID='".$Animals[$Counter]."'";
$resultSubscribed = mysql_query($sqlSubscribed);
if(mysql_num_rows($resultSubscribed) == 0){ echo "Subscribe";}
else {echo "deregister";}
?>'><br/><?php
$Teller++;
}