我在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函数?
感谢。
答案 0 :(得分:5)
假设您想要保留外部js文件而不是将其嵌入到您的php脚本中,请让php写出两个全局js变量,并修改js文件以使用它们。
e.g。在php:
echo "<script>var val1 = $var1; var val2 = $var2;</script>";
并在你的js文件中:
values: [val1, val2]
<小时/> 但是,如果您可以将js文件更改为php文件,则可以执行以下操作:
<?php header('Content-type: text/javascript'); ?>
... // your regular js code here
values: <?php echo $var1 ?> , <?php echo $var2 ?>
...
现在,您可以在您的页面上使用:
<script type="text/javascript" src="yourfile.js.php">
答案 1 :(得分:4)
我说你只是这样做:
$( "#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循环来使你的数组大小动态:)
答案 2 :(得分:4)
PHP代码在服务器上运行,jQuery代码在浏览器中运行,因此您无法直接将PHP变量传递给jQuery函数,因为您无法直接从PHP代码中调用 jQuery函数。 / p>
您需要做的是让PHP代码生成JavaScript代码,当它稍后在浏览器中运行时,会将一些JavaScript变量设置为您想要的值。例如,您可以使PHP代码在页面的标题中生成包含JavaScript赋值语句的<script>
元素,然后修改您的.js
文件,使其代替数字35和50,它指的是那些变数。
您也可以将PHP代码放在.js
文件本身中,正如其他答案所暗示的那样,但前提是它实际上是PHP脚本而不是静态文件。我的建议是将大部分JavaScript代码保存在静态文件中(以便浏览器可以缓存它们)并让PHP只生成其他脚本可以引用的一些全局变量的赋值。
答案 3 :(得分:3)
在定义滑块之前,您可以向服务器发出ajax请求。
例如。 var myValues = function(){ //执行ajax调用返回值的php脚本 返回值};
$( "#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 ) );
答案 4 :(得分:2)
就像这样回应它。
$( "#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 ] );
}
});
答案 5 :(得分:1)
这取决于价值。如果它是一个简单的数值,你可以回应它。如果它是复杂的或字符串,您可以通过json_encode
以JSON格式回显它(因为JSON是JavaScript文字语法的一个子集),因为它将处理转义等等。
请注意,在两种情况下,PHP都在服务器上发生,因为页面请求已满足,并且JavaScript在客户端使用它以后。
答案 6 :(得分:0)
我最喜欢的一个技巧是命名你的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文件中声明的函数。