簡體   English   中英

如何將PHP變量值傳遞給jquery函數?

[英]How to pass PHP variable value to jquery function?

我在Wordpress / js文件夾中有這個JQuery腳本,我需要更改我存儲在數據庫中的一些值。

$( "#slider-range2" ).slider({
    range: true,
    min: 18,
    max: 90,
    values: [ 35, 50 ],
    slide: function( event, ui ) {
        $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
    }
});
$( "#amount2" ).val( $( "#slider-range2" ).slider( "values", 0 ) + "-" + $( "#slider-range2" ).slider( "values", 1 ) );

Jquery文檔對我來說並不清楚。 我需要改變的值是[35,50]。 這些值存儲在數據庫中。 我怎么能從js文件中做到這一點? 如何將PHP變量值傳遞給jquery函數?

謝謝。

假設您想保留外部js文件而不是將其嵌入到您的php腳本中,請讓php寫出兩個全局js變量,並修改js文件以使用它們。

例如在php中:

echo "<script>var val1 = $var1; var val2 = $var2;</script>";

並在您的js文件中:

values: [val1, val2]


但是,如果您可以將js文件更改為php文件,則可以執行以下操作:

<script type="text/javascript" src="yourfile.js.php">

現在,您可以在您的頁面上使用:

 <script type="text/javascript" src="yourfile.js.php"> 

我會說你這樣做:

$( "#slider-range2" ).slider({
    range: true,
    min: 18,
    max: 90,
    values: [ <?php echo $value1; ?>, <?php echo $value2; ?> ],
    slide: function( event, ui ) {
        $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
  }

});

當然,$ value1和$ value2是從數據庫中獲得的值。

-edit-或者其他人說的話,你可以使用php for循環來使你的數組​​大小動態那樣:)

PHP代碼在服務器上運行,jQuery代碼在瀏覽器中運行,因此您無法直接將PHP變量傳遞給jQuery函數,因為您無法直接從PHP代碼調用 jQuery函數。

你需要做的是讓PHP代碼生成JavaScript代碼,當它稍后在瀏覽器中運行時,會將一些JavaScript變量設置為你想要的值。 例如,您可以使PHP代碼在包含JavaScript賦值語句的頁面標題中生成<script>元素,然后修改.js文件,以便代替數字35和50,它引用這些變量。

您也可以將PHP代碼放在.js文件本身中,正如其他答案所建議的那樣,但前提是它實際上是PHP腳本而不是靜態文件。 我的建議是將大部分JavaScript代碼保存在靜態文件中(以便瀏覽器可以緩存它們)並讓PHP只生成其余腳本可以引用的一些全局變量的賦值。

那么你可以在定義滑塊之前向服務器發出ajax請求。

例如。 var myValues = function(){//對php腳本執行ajax調用,返回值返回值};

$( "#slider-range2" ).slider({     
   range: true,     
   min: 18,
   max: 90,
   values: myValues(),
   slide: function( event, ui ) {
       $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
   } 
}); 
$( "#amount2" ).val( $( "#slider-range2" ).slider( "values", 0 ) + "-" + $( "#slider-range2" ).slider( "values", 1 ) ); 

就像這樣回應它。

$( "#slider-range2" ).slider({
    range: true,
    min: 18,
    max: 90,
    values: <?php echo $your_variable ?> ,
    slide: function( event, ui ) {
        $( "#amount2" ).val( ui.values[ 0 ] + "-" + ui.values[ 1 ] );
    }
});

這取決於價值。 如果它是一個簡單的數值,你可以回應它。 如果它是復雜的或字符串,您可以通過json_encode以JSON格式回顯它(因為JSON是JavaScript文字語法的子集),因為它將處理轉義等等。

請注意,在兩種情況下,當頁面請求滿足時,PHP正在服務器上發生,而JavaScript 稍后在客戶端使用它。

我最喜歡的技巧之一是命名你的javascript文件somename.js.php,然后發送一個javascript標題:

Header("content-type: application/x-javascript");

現在,您可以在javascript中使用完整的PHP功能(包括數據庫調用)。

但是,您需要確保使用服務器正確緩存文件,因此不會在每個頁面上下載。 就像是:

header("Expires: Sat, 26 Jul 2012 05:00:00 GMT")

根據經驗,我通常會在主php文件中保留任何更改的JS變量,並將它們傳遞給在外部JS文件中聲明的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM