如果选择了选项,则为PHP / HTML - >定义变量

时间:2018-01-17 20:33:58

标签: php jquery html

我想在选择一个选项时定义变量($_SESSION['name'])(不发布)当选择一个选项时,它应该定义变量而不发布或刷新页面。例如像这样的东西,可能是jQuery或者其他东西。有人可以帮助我吗?

   <select name="location">
        <option <?php $_SESSION['name'] = "US";?>>US</option>
        <option <?php $_SESSION['name'] = "GB";?>>GB</option>
        <option <?php $_SESSION['name'] = "DE";?>>DE</option>
    </select>

2 个答案:

答案 0 :(得分:2)

好的,这样做:

<select name="location" onChange="thingChanged(this)">
    <option value="US">US</option>
    <option value="GB">GB</option>
    <option value="DE">DE</option>
</select>

<script type="text/javascript">
    function thingChanged(thing){
        $.post('pageMarkingSessionVar.php',{
                sel:$(thing).val();
               });
    }
</script>

然后在pageMarkingSessionVar.php上执行:

<?php
  session_start();
  if(isset($_POST["sel"])){
    $_SESSION["name"] = $_POST["sel"];
  }
?>
快速而又肮脏,但你明白了。

编辑:哦,确保加载jQuery

答案 1 :(得分:1)

我不确定你想要什么,但也许它可以提供帮助:

var freq = 1000;

function getLocation(){
  var location = document.getElementsByName("location").value
  var ajax_req = new XMLHttpRequest();
  if(ajax_req.readyState==0 || ajax_req.readyState==4){
    ajax_req.open('POST','yourwebsite.io',true);
    ajax_req.onload=handleResponse;
    ajax_req.send("loc="+location);
   }
   setTimeout('getLocation()', freq);
}

function handleResponse(){
  //Handle response
}

getLocation();
   <select name="location">
        <option value="US">US</option>
        <option value="GB">GB</option>
        <option value="DE">DE</option>
    </select>

这是HTML / JS,您只需要在 yourwebsite.io 的php文件中执行$_SESSION['name'] = $_POST['loc']。通过在 ANY HTML代码(更多信息here)之前添加session_start();来确保您启用了会话。