默认情况下,按钮通过javascript获取不正确的PHP值

默认情况下,按钮通过javascript获取不正确的PHP值,javascript,php,Javascript,Php,我有以下带有选项的选择器: <select name="" id="product-selector" class="list_item"> <?php if( have_rows('section_a') ): while( have_rows('section_a') ): the_row(); if( have_rows('product_item') ): while( have_rows('product_item') ):

我有以下带有选项的选择器:

<select name="" id="product-selector" class="list_item">
    <?php

    if( have_rows('section_a') ):
    while( have_rows('section_a') ): the_row();
    if( have_rows('product_item') ):
    while( have_rows('product_item') ): the_row();

    $product_item_quantity = get_sub_field('product_item_quantity');
    $product_item_price = get_sub_field('product_item_price');
    $product_item_id = get_sub_field('product_item_id');
    $product_item_variation_id = get_sub_field('product_item_variation_id');
        ?>
        <option value="<?php echo $product_item_variation_id; ?>" data-id="<?php echo $product_item_variation_id; ?>" data-content="<?php echo $product_item_quantity; ?> <span class='price' data-count='<?php echo $product_item_quantity; ?>' data-price='<?php echo $product_item_price; ?>'><?php echo $product_item_price; ?>"> </option>
    <?php endwhile; endif; endwhile; endif; ?>
</select>


我认为应该创建一个变量来保存第一个值。因为你已经循环了。所以默认值是select的最后一个值

<?php $product_item_variation_id_first = ""; ?>
<select name="" id="product-selector" class="list_item">
    <?php

    if( have_rows('section_a') ):
    while( have_rows('section_a') ): the_row();
    if( have_rows('product_item') ):
    while( have_rows('product_item') ): the_row();

    $product_item_quantity = get_sub_field('product_item_quantity');
    $product_item_price = get_sub_field('product_item_price');
    $product_item_id = get_sub_field('product_item_id');
    $product_item_variation_id = get_sub_field('product_item_variation_id');
    if ($product_item_variation_id_first == "")
        $product_item_variation_id_first = $product_item_variation_id;
        ?>
        <option value="<?php echo $product_item_variation_id; ?>" data-id="<?php echo $product_item_variation_id; ?>" data-content="<?php echo $product_item_quantity; ?> <span class='price' data-count='<?php echo $product_item_quantity; ?>' data-price='<?php echo $product_item_price; ?>'><?php echo $product_item_price; ?>"> </option>
    <?php endwhile; endif; endwhile; endif; ?>
</select>

<div class="submit">
<a class="btn btn-warning" id="purchase" href="?add-to-cart=<?php echo $product_item_id; ?>&variation_id=<?php echo $product_item_variation_id_first; ?>">Order Now</a>
</div>


您可以在设置了
$product\u item\u variation\u id
的位置共享代码吗?当然,我已经更新了我的第一个后请告诉我结果。我将在30分钟后在线。我刚刚开始添加变量,不知道如何添加它会更好。正如您所看到的,我使用ACF PRO进行此解决方案。我认为在中继器中放置新的var不是一个好主意。请让我知道你的想法。如果你觉得不好,我们可以使用javascript。当页面加载时,我们可以触发下拉菜单。
<script>
document.getElementById("product-selector").onchange = function() {
    document.getElementById("purchase").href = "?add-to-cart="+"<?php echo $product_item_id; ?>"+"&"+"variation_id="+this.value+"/";
}
</script>
<?php $product_item_variation_id_first = ""; ?>
<select name="" id="product-selector" class="list_item">
    <?php

    if( have_rows('section_a') ):
    while( have_rows('section_a') ): the_row();
    if( have_rows('product_item') ):
    while( have_rows('product_item') ): the_row();

    $product_item_quantity = get_sub_field('product_item_quantity');
    $product_item_price = get_sub_field('product_item_price');
    $product_item_id = get_sub_field('product_item_id');
    $product_item_variation_id = get_sub_field('product_item_variation_id');
    if ($product_item_variation_id_first == "")
        $product_item_variation_id_first = $product_item_variation_id;
        ?>
        <option value="<?php echo $product_item_variation_id; ?>" data-id="<?php echo $product_item_variation_id; ?>" data-content="<?php echo $product_item_quantity; ?> <span class='price' data-count='<?php echo $product_item_quantity; ?>' data-price='<?php echo $product_item_price; ?>'><?php echo $product_item_price; ?>"> </option>
    <?php endwhile; endif; endwhile; endif; ?>
</select>

<div class="submit">
<a class="btn btn-warning" id="purchase" href="?add-to-cart=<?php echo $product_item_id; ?>&variation_id=<?php echo $product_item_variation_id_first; ?>">Order Now</a>
</div>