2015-10-28 116 views
1

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

基本上选项更改,我想要一个会话变量来保存选项的值,无论选择哪一个。有什么办法可以做到吗?

+4

你不能在JS中声明一个PHP变量。首先处理PHP然后JS。你可以发送一个AJAX请求来更新一个PHP会话变量。 PHP是服务器端; JS在浏览器/客户端上。 – chris85

+1

你不能直接使用JS来更改会话变量,你可以使用ajax在服务器上运行一个php脚本,该实例会为你改变你的会话。 –

+0

所以我不得不使用ajax? –

回答

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]; 
+0

可能想向他展示如何用Ajax实现这一点。 – Ultimater

+0

谢谢!这工作,:) –

-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> 
+1

是的,他只是忘记了回声。 – Ultimater

+0

不工作的伴侣。 –

+0

如果您尝试从JavaScript更新PHP会话,则需要使用Ajax。 – Ultimater

-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> 
+2

用户想从javascript设置php变量的值 – Arpita

相关问题