javascript - 将 php 变量传递并更新为 javascript

标签 javascript php html-select

有没有办法可以将 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>

最佳答案

这是一个如何做到这一点的示例。你需要做的是:

  1. 分析代码(请注意,我使用来自 google 帐户的 jquery。您需要在某个时候在您的网站上安装 jquery 并使用这个而不是 google 的。
  2. 构建您的 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/

相关文章:

javascript - 如何找出发出警报的位置?

javascript - 在 Meteor 中调用 collection.fineOne 时出现未定义

JavaScript:我可以跳过复杂的 div 大小调整以获得我想要的 "full width block, no vertical overlap"行为吗?

javascript - 如何在reactjs中过滤多数组列表

javascript - 在 PHP、MySQL 和 JS 站点上存储琐碎数据的有效方法

php - symfony smtp - 无法与主机建立连接

javascript - 为什么这个 Angular 选择包装器指令不起作用?

php - 需要方法来查找下一个/上一个记录 ID,而无需循环遍历所有记录

javascript - 如果从一个选择和另一个选择中选择选项,则显示 div 元素

javascript - 显示来自两个下拉菜单的图像