我有一个非常简单的PHP代码,应该在按下按钮后立即输出“ Hi”。第一次打开页面时效果很好-页面上只有一个按钮,我按下它并显示“嗨” 当我尝试刷新页面时出现问题。 “嗨”不会消失。
我尝试了几种浏览器并刷新了页面,而没有使用现金。这没有帮助。唯一有帮助的是在新标签页中打开页面。然后没有“嗨”-直到我第一次按下按钮。
<form method="post">
<input type="submit" name="test" id="test" value="RUN" /><br/>
</form>
<?php
function testfun()
{
echo 'Hi ';
}
if(array_key_exists('test',$_POST)){
testfun();
}
?>
答案 0 :(得分:1)
放置正确的操作页面,或将其放置为相同的网址(但仍然放置标签)。
<form method="post" action="page_here.php">
<input type="submit" name="test" id="test" value="RUN" /><br/>
</form>
尝试使用isset()检查。
function testfun() { echo 'Hi '; }
if ( isset($_POST) && isset($_POST['test']) ) {
testfun();
}
答案 1 :(得分:0)
请参见Post/Redirect/Get。提交后,您将无法立即显示确认消息,否则刷新浏览器将始终发送完全相同的POST。
相反:
header
进行重定向,以下示例:
<!DOCTYPE html>
<html>
<head>
<style>
body {
text-align: center;
}
#btn {
width: 50%;
margin-bottom: 10px;
}
#audioplayer {
width: 50%;
margin-bottom: 10px;
}
#mp3 {
width: 50%;
margin-bottom: 10px;
}
#txt {
width: 50%;
margin-bottom: 10px;
}
#mytextbox {
width: 50%;
margin-bottom: 10px;
}
</style>
</head>
<body>
<button id="btn" type="button">Load external MP3 and TXT urls from input boxes to the audioplayer and textbox</button>
<button id="clearbtn" type="button">Clear MP3 and textarea contents</button>
<audio id="audioplayer" controls>
<!--<source src="https://www.w3schools.com/html/horse.mp3" type="audio/mpeg"> Your browser does not support the audio element.-->
<source id="mp3url" src="" type="audio/mpeg"> Your browser does not support the audio element.
</audio>
<input name="mp3" type="url" id="mp3" class="mp3" placeholder="URL of MP3">
<input name="txt" type="url" id="txt" class="txt" placeholder="URL of TXT file">
<textarea id="mytextbox" rows="10" cols="50" placeholder="Textarea, soon to hold external .txt content"></textarea>
<!--
JQUERY
$('#mytextbox').load("https://www.w3.org/TR/PNG/iso_8859-1.txt");
$("#mp3").keyup(function(){
var inputVal = $(this).val();
$("#mp3url").attr("src", inputVal);
});
EXTERNAL FILE URLS
https://www.w3schools.com/html/horse.mp3
https://www.w3.org/TR/PNG/iso_8859-1.txt
TESTS
https://jsfiddle.net/2ogfxqLu/1/
-->
</body>
</html>
答案 2 :(得分:-1)
我认为您不了解发布的工作原理,当您将数据发送到页面时,数据的生存时间与该页面一样长。也就是说,当您重新加载页面时,数据将因为易失而消失。如果要保留数据,则需要将其存储在会话中。
还请注意,刷新页面时,它会重新提交表单,如果您单击地址栏并按Enter,您将获得空白!
请查看会话,它将解决您的问题:PHP Manual