Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.03.2011, 14:22
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,568

$.ajax вытащи из keyup. Так примерно:
$(document).ready(function(){
  var data = null;
  var flag = false;
  $.ajax({
    type: "GET",
    url: "011pags.xml",
    dataType: "xml",
    success: function(xml) { 
       flag = false;
       // формируем data 
       flag = true;
   }
  ); 
  $('#kod_tovar1').keyup(function(){
    if (data && flag) {
        // проверка текущего значения с теми, что в data
    }
  });
});
Ответить с цитированием
  #12 (permalink)  
Старый 11.03.2011, 18:45
Интересующийся
Отправить личное сообщение для vladvk Посмотреть профиль Найти все сообщения от vladvk
 
Регистрация: 11.03.2011
Сообщений: 28

непойму почему alert на выходе дает [object Object] в 26 строчке
$(document).ready(function(){
  var data = null;
  var flag = false;
  $.ajax({
    type: "GET",
    url: "011pags.xml",
    dataType: "xml",
    success: function(xml) { 
       flag = false;

  $(xml).find('[price]').each(function()
                        {
						var id = $(this).attr('id')
						data = {};
	data[id] = $(this).attr('id');
	data[id].name = $(this).attr('name');
	data[id].price = $(this).attr('price');
       flag = true;
	  
	   });
	  }   
  }); 
    $('#kod_tovar1').keyup(function(){
    if (data && flag) {   
id = $(this).val();
alert (data);
if (id in data) {
   $('#kod_tovar1').val(data[id]);
  $('#nazvanie1').val(data[id].name);
  $('#cena1').val(data[id].price);
}
  }
});
});
Ответить с цитированием
  #13 (permalink)  
Старый 12.03.2011, 09:24
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,568

А что должно давать?
var x = {}
alert(x)
Ответить с цитированием
  #14 (permalink)  
Старый 12.03.2011, 18:34
Интересующийся
Отправить личное сообщение для vladvk Посмотреть профиль Найти все сообщения от vladvk
 
Регистрация: 11.03.2011
Сообщений: 28

Не пойму как правильно свойства задать здесь:
data[id] = {};
Ответить с цитированием
  #15 (permalink)  
Старый 13.03.2011, 03:56
Интересующийся
Отправить личное сообщение для vladvk Посмотреть профиль Найти все сообщения от vladvk
 
Регистрация: 11.03.2011
Сообщений: 28

А это так и должно быть:
alert (data[id]); == > undefined
Ответить с цитированием
  #16 (permalink)  
Старый 13.03.2011, 08:02
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,568

data = {}
data[1] = {}
data[1].name = 'aaa';
data[1].price = '1000';
Ответить с цитированием
  #17 (permalink)  
Старый 13.03.2011, 20:38
Интересующийся
Отправить личное сообщение для vladvk Посмотреть профиль Найти все сообщения от vladvk
 
Регистрация: 11.03.2011
Сообщений: 28

Толи я тупой толи ....
Совсем запутался, пните куда рыть
$(xml).find('[price]').each(function()
                        {	
						var id = $(this).attr('id');
						//var name = $(this).attr('name');
						//var price = $(this).attr('price');
		//for(var id in data) {												
	data = {};
	for(var id in data) {
	data[id] = {};
	//for(var id in data) {
	data[id].name = $(this).attr('name');
	data[id].price = $(this).attr('price');	
	}
	
	  console.log(data[id]);
	 
	 						
});
Ответить с цитированием
  #18 (permalink)  
Старый 14.03.2011, 12:20
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,568

ты data в цикле постоянно обнуляешь(data = {}.
Я выше показывал где объявлять, там где писал:
var data = null;

пиши data = {};
Ответить с цитированием
  #19 (permalink)  
Старый 14.03.2011, 17:46
Интересующийся
Отправить личное сообщение для vladvk Посмотреть профиль Найти все сообщения от vladvk
 
Регистрация: 11.03.2011
Сообщений: 28

Спасибо.
В осле не работает, почемуто
Ответить с цитированием
  #20 (permalink)  
Старый 15.03.2011, 00:07
Интересующийся
Отправить личное сообщение для vladvk Посмотреть профиль Найти все сообщения от vladvk
 
Регистрация: 11.03.2011
Сообщений: 28

Все работает.
Огромное спасибо micscr за помощь.
вот рабочий код:
$(document).ready(function(){
 var data = null;
  data = {};
  var id = null;
  data[id] = {};
  var flag = false;
 $.ajax({
    type: "GET",
    url: "011pags.xml",
    dataType: "xml",
	    error: function(XMLHttpRequest, textStatus, errorThrown) { 
	        alert("Error AJAX: " + textStatus + ", " + errorThrown); 
	    },
    success: function (xml) { 
       flag = false;	   	     
  $(xml).find('[price]').each(function()
                        {	
						var id = $(this).attr('id');
	data[id] = {};
	data[id].id = $(this).attr('id');
	data[id].name = $(this).attr('name');
	data[id].price = $(this).attr('price');						
});	
       flag = true;	 
	   } 	  	   
	  });  	  	   
	     	     $('#vvod_kod').keyup(function(){
		 
    if (data && flag) {   
id = $(this).val();
if (id in data) {

var ids = 0;
  
//$('.quantity').css('background': '#f4fff5', 'padding-left': '3px', 'height': '15px', 'border': '1px');
$('#add_tb').append('<tr id="tr-' + ids + '"><td class="quantity"><img src="images/del.jpg" width="15" height="15" onclick="removeInput(\'' + ids + '\')" /></a><input size="10" type="text" name="kodtovar_' + ids + '" id="kodtovar_' + ids + '" value="'+ data[id].id +'"></td><td class="quantity"><input size="72" type="text" name="nazvanie_' + ids + '" id="nazvanie_' + ids + '" value="'+ data[id].name +'"></td><td class="quantity"><input size="9" type="text" name="stranica_' + ids + '" id="stranica_' + ids + '" value=""></td><td class="quantity"><input size="11" type="text" name="cena_' + ids + '" id="cena_' + ids + '" value="'+ data[id].price +'"></td><td class="quantity"><input size="11" type="text" name="kolihectvo_' + ids + '" id="kolihectvo_' + ids + '" value="1"></td><td class="quantity"><input size="5" type="text" name="summa_' + ids + '" id="summa_' + ids + '" value="'+ data[id].price +'"></td></tr>');  
ids++;
}
  }
});
});
function removeInput(id) {
 $("#tr-"+id).remove();
}


Осталась одно еще проблемка
<page addtobag="1" category="12" id="4">
<product height="450" id="44241" name="Надфель" price="$0" width="450" x="429" y="0"/>
</page>
<page addtobag="1" category="13" id="5">
<product height="450" id="99326" name="Ручка" price="$0" width="450" x="0" y="0">
<subproduct id="22098" name="Пенал" price="$0"/>
</product>
</page>

Например
вводим 22098 получаем id=5 page и умножаем на 2
вводим 44241 получаем id=4 page и умножаем на 2
вводим 99326 получаем id=5 page и умножаем на 2
Пока даже мыслей нет как можно раализовать данную штуку
Пожалуйста набросайте план реализации
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XML и jquery TAII jQuery 2 03.04.2011 13:34
Как удалить из памяти весь XML документ? EisBerg Events/DOM/Window 1 03.04.2010 14:45
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
jquery xml parsing Anton7777 jQuery 4 23.11.2009 17:36
Jquery + XML + Internet Explorer testdriver jQuery 12 15.10.2009 08:14