在Wordpress主题中使用AJAX的SQL查询

时间:2011-10-04 16:17:04

标签: javascript mysql sql ajax wordpress

我正在尝试使用AJAX将数据插入数据库,但无法连接到服务器端的.php文件。我认为这是因为这一切都是在Wordpress上运行的,所以我的.php文件的正常url路径可能不正确。

这是我的设置:

模板文件:

$('#newsletter-register').submit(function(){
    var ajaxRequest;  // The variable that makes Ajax possible!

    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }

    ajaxRequest.onreadystatechange = function(){

        if(ajaxRequest.readyState == 4){
            alert(ajaxRequest.responseText);
        }
    }

    ajaxRequest.open("GET", "register_newsletter.php", true);
    ajaxRequest.send(null);

});

'#newsletter-register'是用户用来提交他/她信息的表格。当ajaxRequest处于readyState 4时的警报被正确抛出,但是将是一个空值。

我的php是一个简单的echo,它返回一个字符串来表示连接是正确的(目前我只是想看看这些文件是否正确地相互调用)。

我认为它必须是register_newsletter.php的url路径,因为我已经尝试将代码放在模板文件中,在外面等等。

我的javascript文件位于/theme/assets/js/code.js,其中我的模板文件(包括register_newsletter.php文件)位于/ theme中。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

昨天我遇到了这类问题。在我的情况下,页面只能从

访问
www.site.com/aFolder/ 

脚本存储在我的

'/wp-content/themes/themeName/processForm.php'

文件夹中。

我使用的网址是:

../wp-content/themes/themeName/processForm.php

我的JS只是在head.php主文件的头部,但请注意我必须使用的URL是相对于访问脚本的页面的URL。 这会对事情有所了解吗?

编辑:

作为故障排除步骤,请尝试确保您可以从它的绝对URL访问您的php文件,并查看firebug以查看在您触发ajax请求时查看的链接是否与您期望的匹配。