0
<?php if ($option['type'] == 'select') { ?>
            <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
              <?php if ($option['required']) { ?>
              <span class="required">*</span>
              <?php } ?>
              <b><?php echo $option['name']; ?>:</b><br />
              <select name="option[<?php echo $option['product_option_id']; ?>]">
                <!-- <option value=""><?php echo $text_select; ?></option> -->
                <?php foreach ($option['option_value'] as $option_value) { ?>
                <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                <?php if ($option_value['price']) { ?>
                (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                <?php } ?>
                </option>
                <?php } ?>
              </select>
              <?php if ($option_value['image'] != 'image/' && $option_value['image'] != 'image/no_image.jpg' ) { ?><?php 
    list($simgwidth) = getimagesize($option_value['image']);
    $selectimgpos = $simgwidth + 35; 
    ?>
<center>
<span id="img<?php echo $option['product_option_id']; ?>" style="position: absolute; display: none; left: -<?php echo $selectimgpos; ?>px; background: #eee; padding: 10px; border: 1px dotted #666; z-index: 90;">
<img src="<?php echo $option_value['image']; ?>">
<br /><strong><?php echo $option['name']; ?></strong>
</span></center><?php } ?>
            </div>
            <br />
<?php } ?>

嗨,我是编程新手,我需要上述代码部分的帮助。通常,此代码仅显示带有选项的 Select 下拉框。

我已经通过在跨度内的底部添加一个额外的图像来修改它。我还计算了宽度并根据其 -width 重新定位图像。

我接下来想做的是有一个 javascript,如果用户悬停或 onFocus 在选择框上将显示跨度内的图像。如果他们更改选择框,图像将根据他们选择的内容而改变。我正在考虑 onBlur 之后隐藏图片。

我找到了一些 javascripts 来做到这一点,但我需要从 php.ini 传递动态变量。

我找到了这个 javascript,但代码不允许我传递变量。

         <script type="text/javascript">
function swapImage(){
    var image = document.getElementById("imageToSwap");
    var dropd = document.getElementById("dd");
    image.src ="images/"+dropd.value+".jpg";    
};
</script>

由于 php 生成的 ID 不断变化,我不能使用静态变量。

任何帮助,将不胜感激。谢谢大家。

PS:$option_value['image'] 是一个 php 数组。如何显示此数组中的第一个或最后一个元素?通常它类似于 array_[n] 但这个已经有括号了?$option_value['image[0]'] ??

4

1 回答 1

1

要将 php 变量传递给 javascript,您只需在正确的位置回显它们:

// in your php file
<?php
    $image_to_swap = "my_id_of_image_to_swap";
    $element = "my_id_of_element";
?>
<script type="text/javascript">
function swapImage(){
    var image = document.getElementById("<?php echo $image_to_swap; ?>");
    var dropd = document.getElementById("<?php echo $element; ?>");
    image.src ="images/"+dropd.value+".jpg";    
};
</script>

至于你的PS:

PHP 数组可以是多维的,因此对于以下数组:

$image = array(
    0 => array(
             0 => 'apple',
             1 => 'banana'
         ),
    1 => array(
             0 => 'broccoli',
             1 => 'cauliflower'
         ),
    2 => array(
             0 => 'peanut',
             1 => 'walnut'
         )
);

您可以通过以下方式访问这些项目:

echo $image[0][0]; // outputs apple
echo $image[2][1]; // outputs walnut

您可以使用字符串作为键,因此您也可以命名键并使用字符串访问它们:

$image = array(
    'fruits' => array(
             0 => 'apple',
             1 => 'banana'
         ),
    'vegetables' => array(
             0 => 'broccoli',
             1 => 'cauliflower'
         ),
    'nuts' => array(
             0 => 'peanut',
             1 => 'walnut'
         )
);

您可以通过以下方式访问这些项目:

echo $image['fruits'][0]; // outputs apple
echo $image['nuts'][1]; // outputs walnut
于 2011-10-25T19:37:54.127 回答