我正在寻找一种通过html页面(.php)上的按钮来清理我的数据库的方法。我有一个工作正常的代码,但每次进入页面时,该功能都是清理我的数据库而不按下按钮。
这是我的代码
<button id="checkoutbutton" onclick="cleanDb()">Clean DB</button>
<script>
function cleanDb()
{alert("<?php clean();?>")}
</script>
<?php
function clean()
{
$con=mysql_connect("localhost","rss","Habb0") or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db("kalender",$con) or die("Failed to connect to MySQL: " . mysql_error());
$sql='DELETE FROM `bilder` WHERE `stop` < now()';
mysql_query($sql);
echo "Databasen är rensad från gamla bilder";}
?>
请帮助我!
答案 0 :(得分:3)
PHP在服务器端解析,JavaScript在客户端解析。在任何javascript(不考虑AJAX)之前,任何PHP操作都将首先运行。
答案 1 :(得分:1)
使用此代码,但我没有使用javascript。在你的情况下,你应该考虑AJAX。但第二个选项如下
<form action="" method="post">
<button id="checkoutbutton" onclick="cleanDb()" name="clebtn">Clean DB</button>
</form>
<?php
if(isset($_POST['clebtn']))
{
function clean()
{
// your code
}
}
?>
答案 2 :(得分:1)
你必须像这样打电话给 ajax
<button id="checkoutbutton" onclick="cleanDb()">Clean DB</button>
<div id="result_content"></div>
<script>
function cleanDb()
{
if(window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var result = xmlhttp.responseText;
// do your task for result
}
}
var url="clean_db.php";
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
</script>
和PHP文件 clean_db.php
<?php
clean();
echo "db has been cleaned";
function clean()
{
$con=mysql_connect("localhost","rss","Habb0") or die("Failed to connect to MySQL: " . mysql_error());
$db=mysql_select_db("kalender",$con) or die("Failed to connect to MySQL: " . mysql_error());
$sql='DELETE FROM `bilder` WHERE `stop` < now()';
mysql_query($sql);
echo "Databasen är rensad från gamla bilder";}
?>