Magento 从AJAX调用PHP文件

Magento 从AJAX调用PHP文件,magento,Magento,我正在尝试使用Magento开发一个小站点,在这个站点中,我试图根据用户从下拉框中选择的内容显示动态内容 到目前为止,我已经完成了一个JavaScript,并使用ajaxforxmlhttp请求PHP文件,它基于w3schools示例提供的代码,如下所示 function loadLocations(value){ var xmlhttp; if (value==0) { document.getElementById("locationList").innerHTML=""; retu

我正在尝试使用Magento开发一个小站点,在这个站点中,我试图根据用户从下拉框中选择的内容显示动态内容

到目前为止,我已经完成了一个JavaScript,并使用ajaxforxmlhttp请求PHP文件,它基于w3schools示例提供的代码,如下所示

function loadLocations(value){
var xmlhttp;
if (value==0)
{
  document.getElementById("locationList").innerHTML="";
  return;
}
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)
  {
    document.getElementById("locationList").innerHTML=xmlhttp.responseText;

  }
}
xmlhttp.open("GET","getLocations.php?countryID="+value,true);
xmlhttp.send();
}

并且getLocations.php被放置在路径中

应用程序/代码/本地/公司/模块/区块/

我的疑问是如何将getLocations.php文件指向特定位置


任何帮助,谢谢大家。

您应该创建一个控制器类来处理您的功能。例如:app/code/local/company/module/controllers/AjaxController.php。您可以在线阅读控制器(它们是magento的核心部分)。然后您很可能会调用类似
http://mywebsite.dom/module/ajax/getlocations/countryID/34/

据我所知,这将是最好的方法

另外,如果您是Magento的新手,我建议您学习一下本系列:。

1)您必须创建控制器。 companyName/yuormodule/controllers/AjaxController.php 2) 在AjaxController.php中创建操作,例如indexAction()。参见代码部分

public function indexAction()
{
    $this->loadLayout();
    $this->renderLayout();    
}
3) 然后将下一个代码添加到yourlayout.xml(例如:app/design/frontend/base/default/layout/yourlayout.xml)

    <yourmodule_ajax_index>
        <block type="yourmodule/getlocations" name="root" template="path/file.phtml">
        </block>
    </yourmodule_ajax_index>

4) 然后必须更新confix.xml中的布局


yourlayout.xml
5) 在此之后,getLocation类的实例将在file.phtml中可用


6) 最后,只需更改此代码
xmlhttp.open(“GET”,“getLocations.php?countryID=“+value,true”)
to
xmlhttp.open(“GET”,“yourmodule/ajax/index/countryID/”+value,true)

努力自学AJAX。不过,你应该省去麻烦,只需感谢你的宝贵赞赏。
<layout>
    <updates>
        <yourmodule>
            <file>yourlayout.xml</file>
        </yourmodule>
    </updates>
</layout>