[英]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]
<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.