2015-10-28 86 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

相關問題