PHP Echo SUM会话值&形式选择

时间:2017-12-08 15:42:15

标签: javascript php

我有一个会话值的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) ;?>没有运气。

当用户实时与选择表单输入交互时,更新此值的最简单方法是什么?

4 个答案:

答案 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
)

对于updateSessionValue.php页面:

<?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>

显然,只是一个示例代码......请务必采取所有必要的安全预防措施!