Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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
Javascript 页面刷新后OnChange选项保持不变_Javascript_Php_Onchange - Fatal编程技术网

Javascript 页面刷新后OnChange选项保持不变

Javascript 页面刷新后OnChange选项保持不变,javascript,php,onchange,Javascript,Php,Onchange,我有这个货币转换脚本,所以用户可以从列表中选择它的货币,比如我们到欧元,所以我想让它在页面刷新后保持不变,就像用户选择了欧元,他刷新页面时应该保持不变一样 这是我的Javascript和代码 <script> function updatePrice(val) { p = document.getElementById("original_price").value; newp = p * val; document.getElementById("calcu

我有这个货币转换脚本,所以用户可以从列表中选择它的货币,比如我们到欧元,所以我想让它在页面刷新后保持不变,就像用户选择了欧元,他刷新页面时应该保持不变一样

这是我的Javascript和代码

<script>
function updatePrice(val) {
    p = document.getElementById("original_price").value;
    newp = p * val;
    document.getElementById("calculated_price").value = newp;
}

</script>

函数updatePrice(val){
p=document.getElementById(“原价”).值;
newp=p*val;
document.getElementById(“计算价格”).value=newp;
}
Php代码:

 <?php  
    $pr = 180;
    ?>
    <select onchange="updatePrice(this.value)">
        <option value="1">US</option>
        <option value="98">RS</option>
        <option value="61">Ind</option>
    </select>
    <input type="hidden" id="original_price" value="<?php echo $pr; ?>" />
    Price: <input type="text" id="calculated_price" value="<?php echo $pr; ?>" />

美国
RS
Ind

实际上,据我所知,PHP提供了任何viewstate机制,所以您可以将其存储在某个隐藏字段中

如果需要使用javascript解决这个问题,也可以使用Cookies

我已经通过设置cookie使用jquery和javascript实现了这一点,因此我不希望您对用于cookie的jquery插件感到困惑。您可以使用jquery插件for cookie以更简单的方式完成这项工作。 这是密码

HTML


美国
RS
Ind
jquery/javascript

$(document).ready(function(e){
 var name = "Currency=";
 var ca = document.cookie.split(';');
 for(var i=0; i<ca.length; i++){
    var c = ca[i].trim();
    if (c.indexOf(name)==0) $('#selectCurrency').val(c.substring(name.length,c.length));
  }
});

$('#selectCurrency').change(function(e){
    var cookieVal = "Currency="+$(this).val();
    document.cookie = cookieVal ;

  });
$(文档).ready(函数(e){
var name=“Currency=”;
var ca=document.cookie.split(“;”);

对于(var i=0;i您可以使用会话或将所选值存储在数据库中的某个位置,inUpdate price函数在onchange事件上进行ajax调用,该调用存储所选值并保持更新。现在,每次刷新页面时,都会从数据库中提取先前选择的值,您可以选择显示它。

什么浏览您的目标用户是谁?请尝试updatePrice()中的console.log(“Success”),这将告诉在会话变量中单击任何浏览器(如firefox、chromestore)时是否调用函数,并使用php标记会话变量选择了哪个选项,如如何在会话中存储该选项?我在回答检查中添加了一个链接it@Armarnath请检查我是否在实现会话后更新了代码,但没有更新发生
<select id="selectCurrency">
    <option value="1">US</option>
    <option value="98">RS</option>
    <option value="61">Ind</option>
</select>
$(document).ready(function(e){
 var name = "Currency=";
 var ca = document.cookie.split(';');
 for(var i=0; i<ca.length; i++){
    var c = ca[i].trim();
    if (c.indexOf(name)==0) $('#selectCurrency').val(c.substring(name.length,c.length));
  }
});

$('#selectCurrency').change(function(e){
    var cookieVal = "Currency="+$(this).val();
    document.cookie = cookieVal ;

  });