2016-04-28 79 views
0

我有一個php文件,其中有一個數字輸入字段。我可以用jQuery獲取輸入字段的值,並將其存儲在一個JavaScript變量中,但現在我想將此JavaScript變量傳遞給一個php變量。我能輕鬆實現它嗎?將JavaScript變量傳遞給同一個php文件中的php變量

<input id="custom_price" type="number" class="custom_price" name="custom_price" value="10" min="10" max="1000"> 

<script type="text/javascript"> 
    jQuery("#custom_price").live("change", function() { 
     var user_amount = jQuery('#custom_price').val();  
    });   
</script> 
<?php $final_value = *How can I pass user_amount here* ?> 
+3

作爲jQuery 1.7中,'.live()'方法已被棄用。使用.on()附加事件處理程序。 http://api.jquery.com/live/ – jcubic

+0

你的目標是什麼後得到它..? –

回答

3

你不能。您需要使用GETPOST保存在PHP變量中的方法將該變量發送到服務器。

0

首先記住php在服務器端運行,而javascript在客戶端運行。所以要傳遞變量到服務器/ php,你需要通過http請求發送它。例如,你可以使用AJAX:

$.post('file.php', { 'varname': 'varvalue'});

你也將需要捕捉參數你服務器端:

#file.php 
<?php 
$value = $_POST["varname"]; 
?> 
1

PHP是混亂的,因爲兩個(或三個)不同的作用域在相同的源代碼文件中運行。

你的樣品有純PHP:

<?php $final_value = *How can I pass user_amount here* ?> 

純HTML:

<input id="custom_price" type="number" class="custom_price" name="custom_price" value="10" min="10" max="1000"> 

<script type="text/javascript"> 
</script> 

和普通的JavaScript:

jQuery("#custom_price").live("change", function() { 
    var user_amount = jQuery('#custom_price').val();  
});   

HTML和JavaScript客戶端(網頁瀏覽器)上運行而PHP運行在服務器端。

一個步驟回:

甲HTTP訪問具有兩個基本不同的步驟**:

  1. 客戶端(的Webbrowser)發送
  2. 服務器發送一個響應

這是一個請求所有的,沒有更多的魔力,沒有任何的中間:一個問題,一個答案。進一步的通信需要額外的HTTP請求(和響應)。

只要瀏覽器向yourscript.php發送請求,就會收到該請求,所有參數都將被解析並且腳本正在啓動。所有的PHP代碼部分都被處理,其他一切都是純粹的未知靜態數據

最後,靜態數據加上腳本的動態輸出將作爲一個包返回給瀏覽器。溝通結束。

每個HTML頁面可能包含一個(或多個)的形式,告訴的附加信息(參數)應被列入下一個請求的瀏覽器:

<form action="myscript2.php"> 
    <input type="hidden" name="foo" value="bar"> 
    <input type="submit" name="button" value="Send request"> 
</form> 

的點擊提交按鈕創建一個全新的請求,添加名爲foobutton的字段的值,並將所有內容發送(提交)到服務器。

同樣,目標PHP腳本正在運行,可能會輸出一些內容,但不會在之前傳送的網頁上***。

**一些技術或多或少略有不同,例如延續請求或websockets,但它們遠遠超出了這個問題的範圍。

*** JavaScript/Ajax可用於操作網頁而不重新加載,但這又是一個請求,響應和Javascript源處理客戶端響應。

1

當用戶訪問該站點時,PHP代碼在服務器上執行,然後發送給用戶。另一方面,Javascript被髮送給用戶,然後在該用戶的機器上執行。在一個基本定義中,這說明了「前端」和「後端」開發之間的區別。

這就是說。您可以使用PHP將值插入到JavaScript代碼中,因爲這可能發生在服務器上,然後由用戶的計算機執行。但是,您無法將javascript值傳遞給PHP變量(在相同的腳本/頁面中),因爲PHP在服務器上已經在您的Web瀏覽器上執行時已經執行了。

正如其他人提到的,解決方案是通過網絡調用將(javascript)數據發送到服務器上的PHP腳本。你可以利用jQuery.ajax()在你的javascript中做到這一點,那麼你的PHP腳本將需要accept the data並做一些事情。

1

事實上,有嵌入的js裏面的PHP代碼的方式,但是,是它適用與否,這是另外一個問題

看到下面的簡單代碼:

<input id="custom_price" type="number" class="custom_price" name="custom_price" value="10" min="10" max="1000"> 

<?php  $final_value ="<script type=\"text/javascript\"> 
     var e = document.getElementById('custom_price').value;document.write(e); </script>"; 

echo $final_value; ?> 
+0

謝謝..我會嘗試這個人,讓你知道它是否有效......乾杯 –