我将 Magento 安装在local
.
我添加了我的 Ajax 代码magento\app\design\frontend\base\default\template\catalog\product\view.phtml
我正在尝试将一些变量发布到与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)
谢谢你