AJAX:无法在PHP脚本中将javascript变量传递给SQL查询

时间:2013-10-14 18:29:16

标签: javascript php jquery mysql ajax

我有一个包含2个部分的PHP页面。左窗格有一个运行的MySQL查询,并生成一个类别列表作为链接。右窗格应具有在单击左窗格中的链接时显示的子类别。

我在附加的JS文件中有一些AJAX,它应该将左窗格中的链接中的ID传递到右窗格中的查询中。该查询应该运行。如果我取出变量,它就会运行。

PHP / SQL查询工作正常。 JS没有。

我认为这是做到这一点的恰当方式。

ajax.js

$( document ).ready(function() {
$( 'a' ).on( 'click', function() {
    var a = $( this ).attr( 'id' );

    $.ajax({
        type: "POST",
        url: "categories.php",
        data: "ajax="+a,
        success: function(response){
            alert( a );
        },
        error: function() {
            alert('Error');
        }
    })
});

});

我被告知一切正常,但我无法在PHP中调用$_POST['ajax']。也许我的页面没有被刷新。页面上没有表格。

最后,我的文件层次结构的categories.php包含一个包含列表,这些包含在一个非公开的文件夹中。

2 个答案:

答案 0 :(得分:1)

我认为你的ajax语法错了。如果您的参数为a且帖子标识符为ajax,请尝试此操作:

$( document ).ready(function() {
    $( 'a' ).on( 'click', function() {
        var a = $( this ).attr( 'id' );

        $.ajax({
            type: "POST",
            url: "categories.php",
            data: {ajax : a},
            success: function(response){
                alert( a );
            },
            error: function() {
                alert('Error');
            }
        });
    });
});

答案 1 :(得分:0)

尝试在$ .ajax调用上设置async:false。另外,如何从php返回数据?您是否在使用JSON_ENCODE进行数据处理?