jQuery и xml
Совсем измучился, нужна помощь
вот код -
$(document).ready(function(){
$.ajax({
type: "GET",
url: "011pags.xml",
dataType: "xml",
success: function(xml) {
$('#kod_tovar1').keyup(function(){
$(xml).find("product").each(function()
{
var id = $(this).attr('id')
if ($('#kod_tovar1').val() == id)
{
$('#nazvanie1').val($(this).attr('name'))
$('#kod_tovar1').val($(this).attr('id'))
$('#cena1').val($(this).attr('price'))
}
});
});
}
});
});
</script>
xml файл - <page addtobag="1" category="12" id="2"> <product height="450" id="48555" name="Набор" price="$0" width="450" x="429" y="0"> <subproduct id="75182" name="Сумка" price="$0"/> <subproduct id="19180" name="Ручка" price="$0"/> </product> </page> как видно у product есть дочка subproduct как вытащить id одновременно у родителя и дочки чтобы потом сравнить с тем что ввел пользователь. |
ну так запускай в цикле еще и цикл по детям у product.
лучше предобработай эти данные сначала, а не бегай по дереву xml при каждом отпускании кнопки:
$xml = $(xml);
// И формируй следующую структуру:
data = {};
data[id] = {};
data[id].name =
data[id].price =
Эти данные сохрани в переменной объявленной в $(document).ready и обработчик keyup выведи в ready изнутри той функции. |
Спасибо.
Можно поподробней по какому принципу формировать структуру data |
Я вроде написал:
пробегаешь по всем необходимым элементам(которые с id), имеешь им id, name, price. Будет такой: Код:
data[48555].name = 'Набор'
id = $(this).val();
if (id in data) {
$(что то).val(data[id].name);
}
|
Мысль уловил спасибо.
А как правильно задать значения для data |
$('[price]').each(function(){
var id = this.id;
data[id] = {};
data[id].name = $(this).attr('name');
// ...
});
|
Господи все в голове смешалось, пните чтоли.
почему здесь - $('[price]').each(function(){ |
изучайте основы джиквери !!!
Вам что надо - собрать данные с <product> и его <subproduct>. Чтобы не бегать по дереву, я их нахожу как имеющие атрибут price |
Спасибо
|
Что то у меня не получается
$(document).ready(function(){
$('#kod_tovar1').keyup(function(){
$.ajax({
type: "GET",
url: "011pags.xml",
dataType: "xml",
success: function(xml) {
$xml = $(xml);
$('[price]').each(function(){
var id = this.id;
data[id] = {};
data[id].name = $(this).attr('name');
data[id].price = $(this).attr('price');
id = $(this).val();
if (id in data) {
$('#nazvanie1').val(data[id].name);
$('#cena1').val(data[id].price);
}
});
}
});
});
});
|
| Часовой пояс GMT +3, время: 10:06. |