2010-11-17 5 views
1

Мне нужно сформулировать строку url из данных на странице проверки. Мне нужно взять все коды продуктов, количества и цены с товаров в корзине и создать строку для использования в отслеживании партнерских отношений. Эта строка должна отображаться на странице проверки. Вот структура html.Передача данных с одной страницы на другую с помощью jQuery

<span class="productCodeID"> 
<div class="productitemcell">123456</div> 
<div class="productitemcell">789123</div> 
</span> 
<span class="productQuantityID"> 
<div class="productitemcell"><input type="text" value="3"></div> 
<div class="productitemcell"><input type="text" value="1" ></div> 
</span> 
<span class="productPriceID"> 
<div class="productitemcell">$15.00</div> 
<div class="productitemcell">$19.50</div> 
</span> 

Что мне нужно, чтобы построить это:

&skulist=123456,789123&pricelist=15.00,19.50&quantitylist=3,1 

Эта строка должна быть передана на страницу подтверждения. Просто ищем небольшое руководство по выполнению этого. Заранее спасибо!

ответ

2
function buildList(items, name) { 
    var values = []; 
    items.each(function() { 
    values.push(this.value || $(this).text()); 
    }); 
    return name + '=' + values.join(','); 
} 

var result = [ 
    buildList($('.productCodeID > .productitemcell'), 'skulist'), 
    buildList($('.productQuantityID > .productitemcell > input'), 'quantitylist'), 
    buildList($('.productPriceID > .productitemcell'), 'pricelist') 
]; 

var string = result.join('&'); 

Working example on JSBin

+0

Будет ли это значение кэшировано? Сборка происходит на странице корзины. Мне нужно отобразить результат на странице проверки. Любые предложения о том, как передавать эти данные на другую страницу? –

+0

@mmsa: просто добавьте его в URL-адрес страницы проверки. – casablanca

0

Вы могли бы использовать что-то вроде этого (многословный)

var skulist = [], pricelist = [], quantitylist = []; 

$('.productCodeID .productitemcell').each(function(){ 
skulist.push($(this).text()); 
}); 
$('.productQuantityID .productitemcell input').each(function(){ 
pricelist.push($(this).val()); 
}); 
$('.productPriceID .productitemcell').each(function(){ 
    quantitylist.push($(this).text().replace('$','')); 
}); 

query = '&skulist=' + skulist.join(',') + 
    '&pricelist=' + pricelist.join(',') + 
    '&quantitylist=' + quantitylist.join(','); 

Пример кода на http://www.jsfiddle.net/gaby/792xP/

0

я запрашиваю HTML элементы и Concat их значение String.

<input type="button" value="nextPage" onclick="nextPage();"> 
<script type="text/javascript"> 
    function nextPage(){ 
     // productCode 
     var qs = '&skulist='; 
     $.each($('span.productCodeID div'), function(){ 
      qs += $(this).html()+','; 
     }); 
     qs = qs.substr(0, qs.length-1); 

     // price 
     qs += '&pricelist=' 
     $.each($('span.productPriceID div'), function(){ 
      qs += $(this).html().substr(1)+','; 
     }); 
     qs = qs.substr(0, qs.length-1); 

     // quantity 
     qs += '&quantitylist=' 
     $.each($('span.productQuantityID div input'), function(){ 
      qs += $(this).val()+','; 
     }); 
     qs = qs.substr(0, qs.length-1); 

     // jump to nextPage 
     location.href = 'nextpage.html' + qs; 
    } 
</script> 
Смежные вопросы