除非在根目录中,否则AJAX URL不起作用

时间:2018-07-23 20:31:47

标签: php jquery mysql ajax

我一直在寻找这个答案,但是找不到这个特定问题的答案。 (首先,我对ajax相当陌生)我有一个动态下拉菜单,该菜单通过sql查询填充项目。我一直在尝试整理所有包含的文件,使所有文件井井有条-但这对我的所有ajax请求都造成了问题。

当我将这些ajax.php文件放入目录中并更改javascript上的URL时,它将破坏代码并且无法连接至数据库。找到这些文件是因为在错误键入路径时,控制台窗口会引发“错误500”错误。我知道可能有一个简单的修复程序,但是在这里或互联网上找不到任何存在此特定问题的地方。

这是我的jquery片段的副本

$(".dropdown01").change(function() {
    var type_id = $(this).val();
    var post_id = 'id=' + type_id;
    $.ajax({
        type: "POST",
        url: "ajax/ajaxMenu.php", //File needs to be in root. '/ajaxMenu.php' 
        data: post_id,
        cache: false,
        success: function(menuItems) {
            $(".dropdown02").html(menuItems);
        }
    });
});

这是ajax文件的片段

include('databaseConnect.php');
if($_POST['id']){
    $id=$_POST['id'];
    $sql = mysqli_query($con,"SELECT * FROM `table01` WHERE item_id='$id'");
    while($row = mysqli_fetch_array($sql)){
        echo '<option value="'.$row['item_id'].'">'.$row['item_name'].'</option>';
        }
    }
}

如果有人可以阐明这个问题,那就太好了!

1 个答案:

答案 0 :(得分:1)

嗯..听起来可能很蠢,但是...

您要移动databaseConnect.php吗?

如果不是,则需要从以下位置更改包含路径:

include('databaseConnect.php');

include('../databaseConnect.php');