我想在选择一个选项时定义变量($_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>
答案 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();
来确保您启用了会话。