有没有办法可以将 php 选项值变量 $option_value['price'] 作为字符串传递到 javascript 中,然后每次选择不同的选项时,javascript 都会用新值“更新”字符串。我尝试过 onchange() 但一定做错了什么。我确信我的错误是因为 php 是服务器端而 javascript 是客户端,但我不知道如何让两者按照我想要的方式运行。
<?php if ($options) { ?>
<?php foreach ($options as $option) { ?>
<?php if ($option['type'] == 'select') { ?>
<span id="option-<?php echo $option['product_option_id']; ?>" class="option">
<select name="option[<?php echo $option['product_option_id']; ?>]" onchange="getIt(this)">
<?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 $option_value['price']; ?>
<?php } ?>
</option>
<?php } ?>
</select>
</span>
我已经尝试过:
<script type="text/javascript">
function getIt(elm) {
var val = elm.options[elm.selectedIndex].text;
window.alert(val);
}
</script>
和
<script type="text/javascript">
function getIt() {
var val = "<?php $option_value['price']; ?>";
window.alert(val);
}
</script>
最佳答案
这是一个如何做到这一点的示例。你需要做的是:
- 分析代码(请注意,我使用来自 google 帐户的 jquery。您需要在某个时候在您的网站上安装 jquery 并使用这个而不是 google 的。
- 构建您的
fruits
数组,使其看起来像示例中的数组。
我已经准备好了页面,将向您展示这里的工作情况:http://jsfiddle.net/7uudp/
下面是它包含的内容。请注意,此示例不使用您的变量。您需要按照您想要/需要的方式使用它们。我还定义了 entry_fruit
来向您展示如何选择要选择的默认水果。希望它会有所帮助。
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
fruits = [{n:"apple",p:1},{"n":"strawbery",p:3}];
entry_fruit="strawbery";
function build_select(select,list,which)
{
$.each( list, function(i,v){
var selopt="" ;
if ( v.n == which ) selopt="selected" ;
$(select).append("<option "+selopt+" value="+i+">"+v.n+" - $"+v.p+"</option>");
}) ;
}
$(document).ready(function(){
build_select($("select[name=fruits]"),fruits,entry_fruit);
$("select[name=fruits]").change(function(){
alert("Price is $" + fruits[$(this).val()].p);
}) ;
})
</script>
</head>
<body>
<select name="fruits"></select>
</body>
</html>
关于javascript - 将 php 变量传递并更新为 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12189301/