我有一个会话值的PHP echo语句,如下所示:
<?php echo $userinfo['RenewAgreementAmount'] ;?>
我有一个这样的表单选择元素:
<select id="Lock" name="Lock">
<option value="1" selected="selected">1 Year</option>
<option value="2">2 Years</option>
<option value="3">3 Years</option>
<option value="4">4 Years</option>
</select>
我正在尝试更新<?php echo $userinfo['RenewAgreementAmount'] ;?>
输出,方法是在与表单交互时,使用此会话值选择用户在选择值id Lock中选择的内容?
我试过<?php echo ($userinfo['RenewAgreementAmount'] * #Lock) ;?>
没有运气。
当用户实时与选择表单输入交互时,更新此值的最简单方法是什么?
答案 0 :(得分:2)
这是因为您的PHP在HTML之前被解释了。这就是PHP的重点。解决这个问题的一种方法是将$userinfo['RenewAgreementAmount']
存储到Javascript变量中并使用此变量。 EX:
<script>var RenewAgreementAmount = <?php echo $userinfo['RenewAgreementAmount'] ?></script>
然后,您可以将新创建的RenewAgreementAmount
javascript变量的值放在要使用它显示的位置:
<span id="renewAgreementAmountField"></span>
<script>
document.getElementById("renewAgreementAmountField").innerHTML = RenewAgreementAmount
</script>
然后,您可以使用变量并更改值。
RenewAgreementAmount = RenewAgreementAmount * document.getElementById("Lock").value;
如果要更新服务器端的值,可以使用新变量的AJAX请求(简单Javascript中的XMLHttpRequest)。
答案 1 :(得分:2)
<script>
renewAmount = <?= $userinfo['RenewAgreementAmount']; ?>
function calc(year){
var amount = renewAmount*year;
// here you can perform an ajax request to update the amount on server
}
</script>
<select id="Lock" name="Lock" onchange="calc(this.value)">
<option value="1" selected="selected">1 Year</option>
<option value="2">2 Years</option>
<option value="3">3 Years</option>
<option value="4">4 Years</option>
</select>
答案 2 :(得分:2)
好的,所以你有这个下拉列表,你想在每次选择某些东西时获得实时选项:
$('#Lock').on('change',function() {
var option
option = $('#Lock').val()
$.ajax({
type: 'post',
url: "your_php_file.php",
dataType: 'data',
data: {
option: option
}
})
})
每次从此下拉列表中选择一个值时,此代码将获取值,并将对您要处理的php类进行ajax调用。你的php类名应该放在url:
字段
之后在你的php中你只需要检索这样的数据:
$option=$_POST['option'];
这意味着每次选择某些内容时都会执行ajax调用。我建议您在用户点击按钮时按下按钮并触发ajax
,因此请设置并onClick
事件。
不要忘记在你的html头中包含jquery版本:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
答案 3 :(得分:1)
使用一些jQuery的方法,就像这样 -
@echo off
for /r %%f in (*) do (
echo %%f
copy sorgente.png %%f
pause>nul
)
<?php
session_start();
$_SESSION["RenewAgreementAmount"] = 50;
?>
<html>
<head>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
</head>
<body>
<select id="Lock" name="Lock">
<option value="1" selected="selected">1 Year</option>
<option value="2">2 Years</option>
<option value="3">3 Years</option>
<option value="4">4 Years</option>
</select>
<script>
$(document).ready(function() {
$("#Lock").bind("change", function(index){
var value = $(this).val();
//console.log("Changed to: " + value);
$.post("updateSessionValue.php". {"newVal": value});
});
});
</script>
</body>
</html>
显然,只是一个示例代码......请务必采取所有必要的安全预防措施!