我在local
中安裝了Magento。
我將自己的Ajax代碼magento\app\design\frontend\base\default\template\catalog\product\view.phtml
Magento - Ajax調用PHP不工作
我試圖在同一位置張貼一些變量到另一個PHP文件爲view.phtml
。
<script>
function loadXMLDoc()
{
var user = "<?php echo $userId;?>";
var product = "<?php echo $xxx;?>";
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST","test.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("userID="+user+"&productID="+product);
}
//this is just a countdown timer
var timeLeft = 3;
var timer = window.setInterval(function() {
timeLeft--;
var minutesLeft = Math.floor(timeLeft/60);
var secondsLeft = timeLeft % 60;
console.log('Time left: ' + minutesLeft + ':' + secondsLeft);
if (timeLeft == 0) {
window.clearInterval(timer);
// do some ajax thing
loadXMLDoc();
}
}, 1000);
</script>
基本上我會在幾秒後發佈2個變量到test.php。 我很確定這些代碼正在工作,但是當我在magento產品頁面中嘗試它們時。 它不工作。我試圖確定,如果所有的代碼正在執行。 一切運行良好,只有Ajax不會在PHP文件中發佈。
在test.php文件中,我只是得到2個變量並將其保存到位於同一文件夾中的.txt文件中。 test.php文件僅用於測試目的。
我需要的只是讓Ajax工作。我希望它發佈到test.php,但保持在同一頁面上。
我谷歌周圍,找到了一些解決方案,它似乎有一些與Magento控制器或一些連接。但我無法理解它。
任何人都可以請告訴我,如果有一個簡單的方法來解決這個問題?
我只是爲了使事情更清楚。
<?php
if(isset($_POST['userID']))
{
$userID = $_POST['userID'];
$productID = $_POST['productID'];
$file = "db.txt";
$current = file_get_contents($file);
$current .= "\n$userID \t $productID";
file_put_contents($file, $current);
}
?>
和db.txt放在同一文件夾中的test.php
如何知道是否test.php的被稱爲? 我試圖檢查db.txt,但裏面沒有任何改變。
修正
我把我的test.php和db.txt根。 和更改
xmlhttp.open("POST","test.php",true)
到
xmlhttp.open("POST","http://localhost/magento/test.php",true)
THANK YOU
你一定'test.php'存在於你的Magento根?例如'test.php'應該存在'index.php'旁邊 –
嗨Jeremi,test.php與view.phtml位於同一個文件夾。或者我應該把test.php放在根目錄下?我把txt文件放在根目錄和產品文件夾中。謝謝。 –