我有这个用于货币转换的脚本,所以用户可以从像我们这样的列表中选择它的货币,所以我想让它在页面刷新后保持相同,就像用户选择了Euro并且他刷新页面它应该保持相同。
这是我的Javascript和代码
<script>
function updatePrice(val) {
p = document.getElementById("original_price").value;
newp = p * val;
document.getElementById("calculated_price").value = newp;
}
</script>
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; ?>" />
实施会话后更新1
<?php
session_start();
// store session data
$_SESSION['value']=".updatePrice(this.value).";
if(isset($_SESSION['value']));
?>
<?php
$pr = 180;
?>
<select onchange="<?php echo $_SESSION['value']; ?>">
<option value="1">US</option>
<option value="98">RS</option>
<option value="61">Ind</option>
</select>
<br>
<hr>
<input type="hidden" id="original_price" value="<?php echo $pr; ?>" />
Price: <input type="text" id="calculated_price" value="<?php echo $pr; ?>" />
<script>
function updatePrice(val) {
p = document.getElementById("original_price").value;
newp = p * val;
document.getElementById("calculated_price").value = newp;
}
</script>
答案 0 :(得分:3)
实际上,PHP dosent提供任何viewstate机制,据我所知,所以你可以做的是将它存储在一些隐藏的领域。最好的方法和我的个人建议是为此目的使用会话变量
http://www.w3schools.com/Php/php_sessions.asp
如果您需要使用javascript解决此问题,您也可以使用Cookie
http://www.w3schools.com/js/js_cookies.asp
我通过设置cookie使用jquery和javascript完成了这个,因此我不希望你与cookie的jquery插件混淆。您可以使用jquery插件为cookie更简单地执行此操作。 这是代码
HTML
<select id="selectCurrency">
<option value="1">US</option>
<option value="98">RS</option>
<option value="61">Ind</option>
</select>
的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 ;
});
小提琴
答案 1 :(得分:0)
您可以使用会话或将所选值存储在数据库中的某个位置,在更新价格函数中进行ajax调用,在onchange事件中存储,您选择的值并保持pdating。现在,每次刷新页面时,都会从数据库中获取先前选择的值,然后您可以将其显示为选中状态。