2016-07-06 74 views
1

我想创建一个简单的“注册您的兴趣”行动。我有前端工作,但我不知道如何将AJAX链接到PHP文件。我在哪里把PHP文件?链接PHP与Ajax Magento 2

我目前的AJAX代码:

$.ajax({ 
         url: "register-interest.php", 
         type: "GET", 
         dataType: "json", 
         data: { 
          type : "registerInterest", 
          email : userEmailLog, 
          user : userNameLog, 
          product : productTitle, 
          sku : productSku 
         }, 
         success: function (response) { 
          JSON.stringify(response); 
         }, 
         error: function (err) { 
          JSON.stringify(err); 
         }, 
         complete : function() { 
          //$('.user-accept').addClass('unhide'); 
          loading(); 
         } 

        }); 

回答

1

首先,你检查网址变量是否正确,然后提供响应像

success: function (response) { 
         JSON.stringify(response); 
        }, 
+0

多数民众赞成在那不完全是我之后。我的问题是我不知道把PHP文件放在哪里。它是否需要进入自己的模块? – Mark

1

您的网址值的任何数据:

"register-interest.php" 

这意味着,该文件的亲认为AJAX请求需要与包含执行AJAX请求的JavaScript文件的页面在相同的目录级别可用。

例子:

如果你的网页是在http://example.com/my/ajax/page.html

随后的JavaScript如果你改变了JS URL值将执行AJAX请求的URL http://example.com/my/ajax/register-interest.php

或者阅读"/register-interest.php",那么AJAX请求将提供给:http://example.com/register-interest.php

你需要把它放在你的服务器上取决于你的web服务器的webroot的折叠方式r结构是有组织的,但是你应该能够从JavaScript将要求解决的URL中恢复工作。

+0

感谢您的回复。我只是有问题把php文件放在Magento 2文件结构中。 – Mark

+0

这取决于。如果PHP文件是一个独立的php文件,可以直接处理请求,然后放置在Magento的公共目录中 - 在源码树中,这将是https://github.com/magento/magento2/tree/2.0/pub。但是,我想你可能想要在处理AJAX响应时访问所有Magento框架的功能,在这种情况下,您应该在控制器上创建一个动作,将其路由到一个URL,然后将jQuery ajax调用适当地更改为反映这一点。 – Benjamin

+0

那就是晶圆厂本杰明!你知道任何有关在控制器上创建一个动作的指南,或者是指向正确方向的东西吗? – Mark