0

我将 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)

谢谢你

4

1 回答 1

0

显然,由于您test.php旁边有 view.phtml,因此将无法xmlhttp.open("POST","test.php",true);请求 POST /test.php(这意味着应用程序根目录)。

请将test.phpanddb.txt放在根目录(与 Magento's 相同的位置index.php

于 2013-04-15T02:22:29.090 回答