Jquery中的PHP
我正在开发wordpress主题,现在我正在开发主题选项页面。我添加了一个带有“选择”方法的选项,让用户可以选择更改滑块的效果。现在。。。这是文本输入的输出,用于设置外汇持续时间Jquery中的PHP,php,jquery,Php,Jquery,我正在开发wordpress主题,现在我正在开发主题选项页面。我添加了一个带有“选择”方法的选项,让用户可以选择更改滑块的效果。现在。。。这是文本输入的输出,用于设置外汇持续时间,工作正常!我的问题是不起作用。 尝试了我所知道和想象的一切(语法、顺序、将开关放入jquery脚本等),搜索了web,但什么也没找到。。。你能帮我吗?提前谢谢 <?php switch (get_option('wis_fx_slider')) { case "opacity":
,工作正常!我的问题是
不起作用。
尝试了我所知道和想象的一切(语法、顺序、将开关放入jquery脚本等),搜索了web,但什么也没找到。。。你能帮我吗?提前谢谢
<?php
switch (get_option('wis_fx_slider')) {
case "opacity":
$fxSample = "opacity : 'toggle',";
break;
case "width":
$fxSample = "width : 'toggle',";
break;
case "opawidth":
$fxSample = "opacity : 'toggle', width : 'toggle',";
break;
case "blink":
$fxSample = "opacity : 'show',";
break;
}
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$("#photo-rotator").tabs({fx:{<?php echo $fxSample ?>
duration: <?php echo get_option('wis_fx_speed'); ?> }}).tabs("rotate", 2000);
});
</script>
您需要在每个php行后面加一个分号
...
$("#photo-rotator").tabs({fx:{<?php echo $fxSample; ?>
...
也许这是一个范围问题?尝试定义
$fxSample = "";
在Begging,在切换之前
要安全地将任何PHP值输出为JavaScript值,请使用
…{fx:,持续时间:}。。。
还请注意,您缺少一个,
,并且代码中有一个额外的}
。始终查看生成的结果以查找语法错误。是否get\u选项(“wis\u fx\u滑块”)
返回开关案例中的一个选项
您尚未指定“默认值”,因此$fxSample
将处于未定义状态
<?php
switch (get_option('wis_fx_slider')) {
case "opacity":
$fxSample = "opacity : 'toggle',";
break;
case "width":
$fxSample = "width : 'toggle',";
break;
case "opawidth":
$fxSample = "opacity : 'toggle', width : 'toggle',";
break;
default: // blink or anything else
$fxSample = "opacity : 'show',";
}
?>
选项卡(“旋转”,2000年);
查看源代码时会发生什么?PHP是否正确布局了动态生成的javascript?你能发布输出吗
还有,格式化
<?php
switch (get_option('wis_fx_slider')) {
case "opacity":
$fxSample = "opacity : 'toggle',";
break;
case "width":
$fxSample = "width : 'toggle',";
break;
case "opawidth":
$fxSample = "opacity : 'toggle', width : 'toggle',";
break;
case "blink":
$fxSample = "opacity : 'show',";
break;
}
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$("#photo-rotator").tabs({
fx: {
<?php echo $fxSample ?>
duration: <?php echo get_option('wis_fx_speed'); ?>
}
}).tabs("rotate", 2000);
});
</script>
当我需要将一些数据传递给JavaScript时,我发现先构建一个PHP数组,然后使用json\u encode
将其转换为JavaScript很有帮助。这避免了许多潜在问题:
<?php
$tab_options = array(
'duration' => get_option('wis_fx_speed'),
'fx' => array()
);
switch (get_option('wis_fx_slider')) {
case 'opacity':
$tab_options['fx']['opacity'] = 'toggle';
break;
case 'width':
$tab_options['fx']['width'] = 'toggle';
break;
case 'opawidth':
$tab_options['fx']['opacity'] = 'toggle';
$tab_options['fx']['width'] = 'toggle';
break;
case 'blink':
$tab_options['fx']['opacity'] = 'show';
break;
}
?>
<script type="text/javascript">
var tabOptions = <?php echo json_encode($tab_options); ?>;
jQuery(document).ready(function($) {
$('#photo-rotator').tabs(tabOptions).tabs('rotate', 2000);
});
</script>
var-tabOptions=;
jQuery(文档).ready(函数($){
$(“#照片旋转器”).tabs(tabOptions).tabs('rotate',2000);
});
好处:
- 更干净的代码(更容易阅读)
- 对于所有可能的情况,您不必担心逗号、引号和其他语法是否正确。例如,正如其他人所提到的,您没有
default
案例。如果选项值无效,这种方法至少会生成有效的JavaScript
看起来您在$fxSample?>
之后缺少一个逗号。另外,请确保您的持续时间是一个数字而不是一个字符串。结果是什么?浏览器错误控制台中是否显示任何javascript错误?Kevin我没有在$fxSample?>
后缺少逗号。。。逗号位于$fxSample=“opacity:‘toggle’**,**”代码>!看起来它是空的。在switch语句中设置一个默认值,然后查看是否出现。如果打印了默认值,我建议检查get\u选项('wis\u fx\u slider')
的输出,以确认其是否符合预期。我相信您在echo结尾缺少分号。您是对的,我缺少分号,现在添加了它,但没有任何更改。您说“没有结果”是什么意思?它一定是在做什么,或者你真的,真的做错了?我给你看我的代码。。。这段代码是为我试图让它工作的选择部分编写的。谢谢你的回答,但是你提供的代码打破了整个滑块。stevether wis_fx_speed工作正常,$fxSample是一个不工作的部分,当你查看Source时,你需要发布它,以便我们可以帮助你。你必须比“没有工作”更具体。发布生成的HTML和JavaScript。找出您的代码是否正在生成PHP错误。试着弄清楚到底发生了什么,而不是期望我们为您完成所有的编码和调试
<?php
switch (get_option('wis_fx_slider')) {
case "opacity":
$fxSample = "opacity : 'toggle',";
break;
case "width":
$fxSample = "width : 'toggle',";
break;
case "opawidth":
$fxSample = "opacity : 'toggle', width : 'toggle',";
break;
default: // blink or anything else
$fxSample = "opacity : 'show',";
}
?>
duration: '<?php echo get_option('wis_fx_speed'); ?>' }}).tabs("rotate", 2000);
<?php
switch (get_option('wis_fx_slider')) {
case "opacity":
$fxSample = "opacity : 'toggle',";
break;
case "width":
$fxSample = "width : 'toggle',";
break;
case "opawidth":
$fxSample = "opacity : 'toggle', width : 'toggle',";
break;
case "blink":
$fxSample = "opacity : 'show',";
break;
}
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$("#photo-rotator").tabs({
fx: {
<?php echo $fxSample ?>
duration: <?php echo get_option('wis_fx_speed'); ?>
}
}).tabs("rotate", 2000);
});
</script>
<?php
$tab_options = array(
'duration' => get_option('wis_fx_speed'),
'fx' => array()
);
switch (get_option('wis_fx_slider')) {
case 'opacity':
$tab_options['fx']['opacity'] = 'toggle';
break;
case 'width':
$tab_options['fx']['width'] = 'toggle';
break;
case 'opawidth':
$tab_options['fx']['opacity'] = 'toggle';
$tab_options['fx']['width'] = 'toggle';
break;
case 'blink':
$tab_options['fx']['opacity'] = 'show';
break;
}
?>
<script type="text/javascript">
var tabOptions = <?php echo json_encode($tab_options); ?>;
jQuery(document).ready(function($) {
$('#photo-rotator').tabs(tabOptions).tabs('rotate', 2000);
});
</script>