如何在javascript函数中声明PHP变量?

时间:2015-10-28 05:21:12

标签: javascript php

我想在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>

基本上在选项更改时,我希望会话变量保持选项的值,无论选择哪个。有没有办法做到这一点?

3 个答案:

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