#php #jquery #ajax
#php #jquery #аякс #ajax
Вопрос:
Привет, у меня есть следующий скрипт для поиска XML-файла и создания упорядоченного списка
$(document).ready(function() {
$.ajax({
type: "GET",
url: "search_action.php" string,
dataType: "xml",
success: disxml
});
})
} // function
function disxml(data) {
$(data).find('results').find('client').each(function(row) {
name = $(this).find('name').text();
var add1 = $(this).find('address1').text();
var add2 = $(this).find('address1').text();
var pcode = $(this).find('postcode').text();
var num1 = $(this).find('number1').text();
var num2 = $(this).find('number2').text();
var contact = $(this).find('contact').text();
var email = $(this).find('email').text();
display = "<a onclick='populate();'> <b>" name "</b> - " add1 "<br></a>";
})
divbox.html(display); // draw contents
}
function populate() {
}
это XML-файл, на который он ссылается
<results>
<client>
<name>Ascot Racecourse</name>
<address1>Berkshire</address1>
<address2/>
<postcode>SL5 7JX</postcode>
<number1/>
<number2/>
<contact>Alastair Warwick</contact>
<email>As per course</email>
</client>
<client>
<name>Aston Villa Football Club</name>
<address1>Villa Park</address1>
<address2>Birmingham</address2>
<postcode>B6 6HE</postcode>
<number1/>
<number2/>
<contact>Andrew Evans </contact>
<email>Info@avfc.co.uk</email>
</client>
<client>
<name>Asda 1 Year Celebration</name>
<address1>Park In Ipswich</address1>
<address2>Ipswich</address2>
<postcode>IP</postcode>
<number1/>
<number2/>
<contact/>
<email>Jonathan Stephenson</email>
</client>
</results>
все работает нормально, когда у меня есть мой список, у меня есть ссылка в каждой строке, которая при нажатии вызывает функцию ‘заполнить’
Когда скрипт переходит к функции заполнения, я действительно застрял в том, как я ссылаюсь на конкретную строку результатов, которая вызвала функцию, как я могу это найти?
Спасибо за любую помощь, и я надеюсь, что это имеет смысл!!
Комментарии:
1. «конкретная строка результатов, которая вызвала функцию» … это очень трудно понять.
2. @Pointy возможно, OP означает элемент
<results>
or<client>
?
Ответ №1:
Это должно сделать:
function disxml(data) {
$(data).find('results').find('client').each(function(row) {
var clientItem = this;
var name = $(clientItem).find('name').text();
var add1 = $(clientItem).find('address1').text();
var add2 = $(clientItem).find('address1').text();
var pcode = $(clientItem).find('postcode').text();
var num1 = $(clientItem).find('number1').text();
var num2 = $(clientItem).find('number2').text();
var contact = $(clientItem).find('contact').text();
var email = $(clientItem).find('email').text();
var link = $("<a href='#'><b>" name "</b> - " add1 "<br/></a>")
link.click(function(evt){
evt.preventDefault();
populate(clientItem);
});
divbox.append(link);
});
}
function populate(item) {
alert("Populating " $(item).find("name").text());
}