2010-11-17 2 views
1

Je dois formuler une chaîne d'URL à partir des données d'une page de paiement. Je dois prendre tous les codes de produits, les quantités et les prix des articles dans un panier et créer une chaîne pour le suivi d'affiliation. Cette chaîne doit être rendue sur la page de paiement. Voici la structure html.Passage de données d'une page à une autre à l'aide de 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> 

Ce que je dois construire est ceci:

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

Cette chaîne doit être transmis à la page de confirmation. Je cherche juste un peu de conseils sur la façon d'accomplir cela. Merci d'avance!

Répondre

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

Cette valeur sera-t-elle mise en mémoire cache? La construction se passe sur la page du panier. J'ai besoin d'afficher le résultat sur la page de paiement. Des suggestions sur la façon de transmettre ces données à une page différente? –

+0

@mmsa: Ajoutez-le simplement à l'URL de la page de paiement. – casablanca

0

Vous pouvez utiliser quelque chose comme ça (bavard)

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(','); 

code exemple à http://www.jsfiddle.net/gaby/792xP/

0

je questionne les éléments HTML et concat leur valeur à cordes.

<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> 
Questions connexes