Отправка данных в XML через AJAX jquery - PullRequest
0 голосов
/ 15 декабря 2009

У меня есть небольшой скрипт, где при изменении я получаю идентификатор выбора, затем я хочу взять этот идентификатор и отправить его через «data:» через вызов jQuery AJAX. Я использую XML для своих данных и отправляю этот идентификатор, поскольку он возвращает результаты только с этим конкретным идентификатором?

Я понимаю, как сделать это с 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, в данном случае это идентификатор, который я выбрал из раскрывающегося списка.

Ответы [ 3 ]

2 голосов
/ 15 декабря 2009

Используя вызов AJAX в jQuery, вы можете сделать что-то вроде этого:

$('#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 может быть проще использовать одну из функций более высокого уровня, как в плагине форм.

UPDATE: ХОРОШО. Теперь я вижу ваше обновление. Я думаю, что это все еще может помочь.

0 голосов
/ 15 декабря 2009

Вот код, который у меня был для работы с картами 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> 
0 голосов
/ 15 декабря 2009

Если вы заинтересованы в парсинге ответа AJAX, вот пример быстрого и грязного блока XML-парсера для jQuery :

  $(request.responseXML).find("marker").each(function() {
      var marker = $(this);
      var point = {
          marker.attr("lat"),
          marker.attr("lng")
      };
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...