Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php变量传递并更新为javascript_Php_Javascript_Variables_Option - Fatal编程技术网

将php变量传递并更新为javascript

将php变量传递并更新为javascript,php,javascript,variables,option,Php,Javascript,Variables,Option,是否有一种方法可以将php选项值变量$option_value['price']作为字符串传递到javascript中,然后每次选择不同的选项时,javascript都会用新值“更新”字符串。我试过onchange(),但肯定是做错了什么。我确信我的错误是因为php是服务器端,javascript是客户端,但我不知道如何让这两种语言按照我的意愿运行 <?php if ($options) { ?> <?php foreach ($options as $option)

是否有一种方法可以将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>


函数getIt(){
var val=“”;
窗口报警(val);
}
像这样?在我看来,你刚刚忘记了“回声”

编辑-


var val=“”;
函数getIt(elm){
val=elm.options[elm.selectedIndex].text;
窗口报警(val);
}

函数getIt(){
var val=“”;
窗口报警(val);
}
像这样?在我看来,你刚刚忘记了“回声”

编辑-


var val=“”;
函数getIt(elm){
val=elm.options[elm.selectedIndex].text;
窗口报警(val);
}

好的,取消我以前的输入

当您匹配
选项的值['price']

现在,您需要以稍微不同的方式排列数据。 在javascript中,准备一个数组,将
$option\u值['product\u option\u value\u id']
映射到
$option\u值['price']。构建
时,对于每个
$option\u值['product\u option\u value\u id']
检查其价格是否与最初从php获得的价格匹配


您的getIt只需获取
值,在该映射中找到它,并使用
alert()
窗口将其显示给用户。

好的,取消我以前的输入

当您匹配
选项的值['price']

现在,您需要以稍微不同的方式排列数据。 在javascript中,准备一个数组,将
$option\u值['product\u option\u value\u id']
映射到
$option\u值['price']。构建
时,对于每个
$option\u值['product\u option\u value\u id']
检查其价格是否与最初从php获得的价格匹配


您的getIt只需获取
值,在该映射中找到它,并使用
alert()
窗口将其显示给用户。

下面是一个示例。你要做的是:

  • 分析代码(请注意,我使用的是来自google帐户的jquery。您需要在某个时候在您的网站上安装jquery,并使用此jquery而不是google的jquery
  • 构建您的
    fruits
    数组,使其与示例中的数组相似
  • 我已经准备好了一页,将向您展示这项工作:

    下面是它所包含的内容。请注意,此示例不使用您的变量。您需要按照您想要/需要的方式使用它们。我还定义了
    entry\u 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>
    
    
    水果=[{n:“苹果”,p:1},{“n:“草莓”,p:3}];
    条目_fruit=“草莓”;
    功能构建\选择(选择、列表、选择)
    {
    $。每个(列表、函数(i、v){
    var selopt=“”;
    如果(v.n==哪个)selopt=“已选定”;
    $(选择).append(“+v.n+”-$“+v.p+”);
    }) ;
    }
    $(文档).ready(函数(){
    构建\选择($(“选择[名称=水果]”),水果,输入\水果);
    $(“选择[name=fruits]”)。更改(函数(){
    警报(“价格为$”+水果[$(this.val()].p);
    }) ;
    })
    
    以下是一个示例,您可以这样做。您需要做的是:

  • 分析代码(请注意,我使用的是来自google帐户的jquery。您需要在某个时候在您的网站上安装jquery,并使用此jquery而不是google的jquery
  • 构建您的
    fruits
    数组,使其与示例中的数组相似
  • 我已经准备好了一页,将向您展示这项工作:

    下面是它所包含的内容。请注意,此示例不使用您的变量。您需要按照您想要/需要的方式使用它们。我还定义了
    entry\u 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>
    
    
    水果=[{n:“苹果”,p:1},{“n:“草莓”,p:3}];
    条目_fruit=“草莓”;
    功能构建\选择(选择、列表、选择)
    {
    $。每个(列表、函数(i、v){
    var selopt=“”;
    如果(v.n==哪个)selopt=“已选定”;
    $(选择).append(“+v.n+”-$“+v.p+”);
    }) ;
    }
    $(文档).ready(函数(){
    构建\选择($(“选择[名称=水果]”),水果,输入\水果);
    $(“选择[name=fruits]”)。更改(函数(){
    警报(“价格为$”+水果[$(this.val()].p);
    }) ;
    })
    
    onchange
    我看对了:。你在哪里添加了代码底部的
    getIt
    函数?我遇到了问题,因为php变量在数组中。我可以理解
    abc
    ,但我看不懂
    onchange
    我看对了:。你在哪里添加
    getIt
    函数?在代码的底部。我遇到问题,因为php变量在一个数组中。我可以理解
    abc
    ,但我不能理解
    在上面编辑它,尝试这样做吗?这会提醒$option\u value['product\u option\u value\u id']…文本获取回声。因为option\u value['price']没有回显,它与此无关。在上面编辑它,尝试类似的操作吗?这会提醒$option\u value['product\u option\u value\u id']…文本获取回显的内容。因为option\u value['price']我正在修改opencart代码…所以你说的大部分对我来说都是希腊语…不管怎样,我似乎需要先找到一种方法来选择一个选项。我会看看我能做些什么,然后我会回来获取更多。谢谢。结果我是一个
    <script type="text/javascript">
    function getIt() {
    var val = "<?php echo $option_value['price']; ?>";
    window.alert(val);
    }
    </script>
    
    <script type="text/javascript">
    var val = "<?php echo $option_value['price']; ?>"; 
    function getIt(elm) {
        val = elm.options[elm.selectedIndex].text;
        window.alert(val);
    }
    </script>
    
    <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>