无法使jquery ajax调用正常工作


Cannot get a jquery ajax call to work

我正在尝试使用jquery编写我的第一个ajax函数。我无法让它发挥作用,也不知道为什么。我的意图是在下拉选择更改事件时触发调用。我把它归结为最基本的功能,只是试图确定这个过程正在完成,但事实并非如此。

我的jquery代码:

$('#selectgallery').change(function () {
    var id = $(this).val();
    $.ajax({
        type: "GET",
        url: "http://www.testsite.com/testing.php",
        dataType: "html",
        data: "gal =" + id,
        success: function (result) {
            alert("AjaxSuccess: " + result);
            //                         $("#gallist").html(result);
        },
        error: function (result) {
            alert("AjaxFailed: " + result);
        }
    });
})

测试内容.php:

<?php
$result = "You connected";
echo "$result";
?>

其目的是php将获取基于"id"的数据,并返回我想用来替换#gallist中的内容的html。我留下了注释的代码行以供说明。这并没有发生,所以我发出警报,看看我能走多远。使用警报,我验证了change函数是否执行,"id"是否捕获了预期值。我似乎没有得到回应。我对成功或错误没有警觉,就像什么都没发生一样
有人能给我指个方向,弄清楚为什么吗?

根据Marios的要求,整个html/javascript如下:

<!DOCTYPE HTML>
<html>
<head>
<title>Test Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href='http://fonts.googleapis.com/css?family=Merriweather+Sans' rel='stylesheet' type='text/css'>
 <!-- jQuery -->
<script src="js/jquery.min.js"></script>
<script src="js/jquery-1.11.0.min.js"></script>
</head>
<body>
<div class="wrapper">
    <div class="header-bg">
    <div class="wrap">
        <div class="top-header">
            <div class="top-header-title">
                <p>Test Page</p>
            </div>
        </div>
    </div>
    </div>
<div class="content-bg">
<div class="gwrap">
<script src="js/jquery.ruggieri-admin.js"></script>
<div id="testmsg">
    <h3>This is the Test MSG Div</h3>
</div>
<div id="gallist">
    <h3>This is the GalList Div</h3>
</div>
<div class="gallerylist-form">
<form id="paintinglist" method="post" action="">
    <select name='selectgallery' id='selectgallery'>
    <option value="01">Gallery 1</option>";
    <option value="02">Gallery 2</option>";
    <option value="03">Gallery 3</option>";
    <option value="04">Gallery 4</option>";
    <option value="05">Gallery 5</option>";
    </select>
</form>
</div>
</div>
</div>
</div>
</body>
</html>

然后是javascript:

$(document).ready(function(){
$('#selectgallery').change(function () {
    var id = $(this).val();
  $("#testmsg").html("<h3>GalleryID: is " + id + "</h3>");
    $.ajax({
        type: "POST",
        url: "testing.php",
        dataType: "html",
        data: "gal=" + id,
        async: false,
    }).done(function (result) {
  $("#gallist").html("<h3>Ajax Done</h3>");
    }).fail(function (result) {
  $("#gallist").html("<h3>Ajax Failed</h3>");
    }).always(function (result) {
  $("gallist").html("<h3>Ajax Always</h3>");
    });
});
});

您可以将"done"answers"fail"函数链接起来,而不是将它们用作参数。(基于文档错误/成功已弃用)

以下代码有效。

$('#selectgallery').change(function () {
    var id = $(this).val();

$.ajax({
    type: "GET",
    url: "/",
    dataType: "html",
    data: "gal=" + id
}).done(function (result) {
    alert("AjaxSuccess: " + result);
    //$("#gallist").html(result);
}).fail(function (result) {
    alert("AjaxFailed: " + response);
});

})

试试这个。

$('#selectgallery').change(function () {
    var id = $(this).val();
    $.ajax({
        type: "GET",
        url: "http://www.testsite.com/testing.php",
        dataType: "json",
        data: "gal =" + id,
        success: function (result) {
            alert("AjaxSuccess: " + result);
          $("body").html(result);
        },
        error: function (result) {
            alert("AjaxFailed: " + result);
        }
    });
});
----
<?php
$result = "You connected";
echo json_encode($result);
?>

我想这个谜已经解开了。jquery 1.11.0库中一定有一个错误。我下载并运行了jquery 1.11.2,没有更改任何其他内容,它起了作用。马里奥斯,谢谢你花这么多时间来帮忙。我现在要去试着把头发长回来。