我想教我自己如何在PHP中使用AJAX。但是,我無法獲取我的(可能已損壞的)AJAX代碼來更改我的$ things變量的值。相反,會發生什麼是index.php頁面重新加載,並添加一個全新的按鈕。這裏是我的代碼:不明白爲什麼我不改變我的腳本的php變量
<?php
$things = 0;
?>
<!DOCTYPE html>
<html>
<head>
<title>testing</title>
<script>
function changeMe()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("changetest").innerHTML=xmlhttp.responseText;
}
}
var things = "<?php echo $things; ?>";
things++;
xmlhttp.open("GET","index.php?things="+things,true);
xmlhttp.send();
}
</script>
</head>
<body>
<?php
echo "<p>Things = <span id=\"changetest\"" . $things . "</span></p>";
?>
<button type="button" onclick="changeMe()">Change Content</button>
</body>
</html>
任何線索,我在哪裏搞亂?
是不是你沒有''''就像:'echo「
Things = 」。 $東西。 「
」;' – SuckerForMayhem 2015-01-26 21:19:31如果你只是去index.php?東西= 1你看到你期望的迴應? – 2015-01-26 21:19:56
當你調用index時,事物被初始化爲0,當你在這個ajax的GET中傳遞新的東西時,它並不代表該變量的任何東西,所以'var things = php'總是從0開始。 $ things = 0的頁面頂部;讓它尋找一個像'$ _GET ['things']'這樣的參數並將其設爲=。那麼問題是,那隻會真的有效。你的ajax基本上是試圖加載同一頁面而不知道它之前的狀態是什麼,因爲你不發送任何新數據,沒有任何東西被更新,也沒有任何變化,所以它會再次重做相同的東西。 – 2015-01-26 21:23:34