下面我有一个简短的程序。页面最初加载时,会显示警报。当按下按钮时,由于它是提交类型,整个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>";
}
?>
答案 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标签。所以警报总是被触发。