当我按下提交输入按钮时,如何使用AJAX跳过部分php?

时间:2018-06-07 16:04:06

标签: php html

下面我有一个简短的程序。页面最初加载时,会显示警报。当按下按钮时,由于它是提交类型,整个php会重新加载并再次显示警告,然后再将按钮的颜色更改为绿色。我想在重新加载时不显示警告,只将按钮的颜色更改为绿色。有没有办法我可以使用AJAX跳过PHP的第一行,当我按下提交按钮时直接转到第二行?非常感谢。

<!DOCTYPE html>

<html>
    <head>  
        <link rel="stylesheet" href="styles/normalize.css">     
        <style type="text/css">
            .sub
            {
                background-color: #1f5a7c;
                border: none;
                font-weight: bold;
                cursor: pointer;
            }
        </style>
    </head>
    <body>  
        <form method="POST" >       
            <input type="submit" name="TestButton" id="TestButton" value="Test Button" class="sub">
        </form>                                                 
    </body>
</html>

<?php   
    if(isset($_POST["TestButton"]))         
    {                                   
        echo "<script type='text/javascript'>TestButton.style.background='green';</script>";    
    }
    else
    {
        echo "<script type='text/javascript'>alert('Start')</script>";
    }
?>

2 个答案:

答案 0 :(得分:0)

您可以使用$_SESSION来执行此操作:

<?php   
    session_start();

    if(isset($_POST["TestButton"]))         
    {                                   
         $_SESSION['submitted'] = true; 
    }

    if ($_SESSION['submitted'] === true){
        echo "<script type='text/javascript'>TestButton.style.background='green';</script>"; 
    }
    else
    {
        echo "<script type='text/javascript'>alert('Start')</script>";
    }
?>

相反..在您的计划中..无论您需要在哪里&#34;重启&#34;用户&#34;从一开始&#34;简单地破坏会话:

<?php
     session_destroy(); 
<?

答案 1 :(得分:0)

<?php   
    if(isset($_POST["TestButton"]))         
    {  ?>                                 
       <script type='text/javascript'>Document.getElementById('TestButton').style.background='green'; </script>    
       <?php
    }
    else
    {
    ?>
       <script type='text/javascript'>alert('Start')</script>
   <?php
    }

?>

试试这个。

有时回声不能按预期工作,所以你可以通过在php标签中包装php的逻辑部分来自由添加脚本。可能发生的事情是从第一个&#39;&#39;&#39;正在执行就好像你因为关闭胡萝卜而放置了php标签。所以警报总是被触发。