将php变量传递并更新为javascript
是否有一种方法可以将php选项值变量$option_value['price']作为字符串传递到javascript中,然后每次选择不同的选项时,javascript都会用新值“更新”字符串。我试过onchange(),但肯定是做错了什么。我确信我的错误是因为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 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>