I am trying to grab a query string parameter and match it to an array that is getting dynamically generated.
Edit for clarity The url will be something like www.example.com?some=stuff&id=dynamicNumber
I'm outputting my array from liquid (shopify) which seems to be rendering properly when I view the source.
My failing point seems to be setting the actual variable "soldOut", because if I put one of the actual values that I know will be in the array, it returns true.
Fiddle with a static array and functional matching: http://jsfiddle.net/zHuDU/5/
I'm just missing the querystring function because I wasn't sure how to do that with JSfiddle
Here is my code:
<script>
var testArray = [
// shopify liquid to generate values
{% for variant in product.variants %}
{% if variant.inventory_quantity == 0 %}
{{ variant.id }},
{% else %}
{% endif %}
{% endfor %}
];
function GetQueryStringParams(sParam)
{
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++)
{
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam)
{
return sParameterName[1];
}
}
}
var soldOut = GetQueryStringParams('id');
if(jQuery.inArray(soldOut, testArray)!==-1) {
console.log("The ID was in the test array (out of stock)");
}
else{
console.log("The ID wasn't in the test array (so it's in stock or I messed up)");
}
</script>