通过AJAX jquery将数据发送到XML

时间:2009-12-15 17:28:25

标签: jquery xml ajax validation

我有一个小脚本,在更改时我得到一个select的ID,然后我想获取该ID并通过jQuery AJAX调用通过“data:”发送它。我正在使用XML作为我的数据而我正在发送此ID,因为它只返回具有该特定ID的结果?

我理解如何使用PHP执行此操作,但之前从未使用过XML和jQuery。

这是我的一段代码:

function populateDropDown(){
    console.log("populateDropDown is called");
    $(".user-selection").show();
    $.ajax({
        type: "GET",
        url: "employee.xml",
        dataType: "xml",
        data: "access_info.level"+ type_id,
        success: function(xml) {
            console.log("success!");
            var select = $('#select-user');
            $(xml).find('employee').each(function(){
                var fn = $(this).find('first_name').text();
                var ln = $(this).find('last_name').text();
                //var value = $(this).find('access_level').text();
                select.append("<option class='ddindent' value='"+ fn +"'>"+fn +" "+ ln +"</option>");
            });
            select.children(":first").text("Please make a selection").attr("selected",true);
        }
    });
    console.log("from popdrop"+type_id)
}

这是一个例子,我需要发送一个参数来仅返回X结果,在这种情况下它是我从下拉列表中获取的ID。

3 个答案:

答案 0 :(得分:2)

在jQuery中使用AJAX调用,您可以完成以下任务:

$('#yourselect').change(function(){ 
$.ajax({
 type: "GET",
 url: "employee.xml",
 dataType: "xml",
 data: "id=" + $(this).val,
 success: function(xml){
    //code to handle the successful return from the server
    //your existing handler should work here
  }
 });
});

但是,使用表单插件中的高级函数之一可能更容易通过AJAX提交表单。

更新: 好。现在我看到你的更新。我认为这可能仍有帮助。

答案 1 :(得分:0)

如果您对解析AJAX响应感兴趣,这里是jQuery的快速而脏的XML解析器示例块:

  $(request.responseXML).find("marker").each(function() {
      var marker = $(this);
      var point = {
          marker.attr("lat"),
          marker.attr("lng")
      };
  });

答案 2 :(得分:0)

以下是我使用Google地图,Jquery和XML的一些代码。应该告诉你如何获取文件并解析它,以及执行任何新方法。

$(".map-overlay-left").click(function () {  
    var map = new GMap2(document.getElementById('map-holder'));
    $("#map-holder").hide('slow');                                  
    var gmarkers = [];
    var side_bar_html = "";
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    var Africa = new GLatLng(-2.767478,23.730469);
    map.setCenter(Africa, 4);   

    $.get("http://xx.xxx.xxxx.xxx/xml-feed-google-maps",{},function(xml) {
        $('marker',xml).each(function(i) {
            html = $(this).text();
            lat = $(this).attr("lat");
            lng = $(this).attr("lng");
            label = $(this).attr("label");
            var point = new GLatLng(lat,lng);
            var marker = createMarker(point,label,html);
            map.addOverlay(marker);
        });
    });

    $("#map-holder").show('slow');
});

XML文件如下所示:

<markers> 
    <marker lat="11.547812" lng="104.915957" label="foo"> 
        <infowindow><![CDATA[><div class="infobox"><h2><a href="link">Anchor Text</a></h2><p>HTML Content</p></div>]]></infowindow> 
    </marker> 
    <marker lat="11.547812" lng="104.915957" label="foo"> 
        <infowindow><![CDATA[><div class="infobox"><h2><a href="link">Anchor Text</a></h2><p>HTML Content</p></div>]]></infowindow> 
    </marker> 
    <marker lat="11.547812" lng="104.915957" label="foo"> 
        <infowindow><![CDATA[><div class="infobox"><h2><a href="link">Anchor Text</a></h2><p>HTML Content</p></div>]]></infowindow> 
    </marker> 
<markers>