我想在javascript函数中声明一个PHP变量(最好是一个会话变量)。
这是我的HTML
<form style="text-align:center">
Service:
<select id="selected">
<option value="">Select Service</option>
<?php foreach($serves as $serv ) {
if($serv['ser'] =='1') { ?>
<option value="Home Delivery">Home Delivery</option>
<?php } elseif($serv['ser'] =='2') { ?>
<option value="Take Away">Take away</option>
<?php } else { ?>
<option value="DinIN">DinIN</option>
<?php } ?>
<?php } ?>
</select>
</form>
这里如果我的javascript功能但这不起作用。
<script type="text/javascript">
$("#selected").on("change", function () {
<?php $this->session->data['desired_service'] ?> = this.value;
});
</script>
基本上在选项更改时,我希望会话变量保持选项的值,无论选择哪个。有没有办法做到这一点?
答案 0 :(得分:2)
你不能使用javascript设置php变量,而是使用Ajax。
实际上,php是一种服务器端语言,只要你的页面完全加载就会从服务器获取数据,你就会执行直到你的网页,你就失去了对php变量的访问权。
您只能通过AJAX实现此目的
要在当前页面上使用ajax执行此操作,您可以编写类似
的函数$("#selected").on("change", function () {
$.ajax({
method: "POST",
url: "http://url.of/somepage/",
data: { sessionvalue: this.value }
})
});
然后在http://url.of/somepage/上你可以做
$this->session->data['desired_service'] = $_POST["somepage.php];
答案 1 :(得分:-1)
试试这段代码: -
<script type="text/javascript">
var <?php echo $this->session->data['desired_service'] ?>;
$("#selected").on("change", function () {
<?php echo $this->session->data['desired_service'] ?> = this.value;
});
</script>
答案 2 :(得分:-3)
<script type="text/javascript">
// boolean outputs "" if false, "1" if true
var bool = "<?php echo $bool ?>";
// numeric value, both with and without quotes
var num = <?php echo $num ?>; // 7
var str_num = "<?php echo $num ?>"; // "7" (a string)
var str = "<?php echo $str ?>"; // "A string here"
</script>