函数.php当变量未硬编码时脚本中断
functions.php script breaks when variable isn't hard coded
我编写了一个jQuery脚本,该脚本采用使用此函数生成的JSON编码列表在我的主题函数中运行.php并为我的jPlayer创建一个播放列表。但是,该脚本仅在 $file
变量进行硬编码(例如 OH0400
)时才有效。但是我需要它根据正在加载的页面选取$file
变量。但是当我切换到此方法(使用 URL)时,脚本显示 JSON 为空。
我以多种方式运行脚本,硬编码$file
和基于变量$file
之间的输出似乎是相同的。为什么在进行切换时会得到空?
这是我的主题函数中的 PHP,.php。
function MyjPlayerList(){
$url = explode( '/', $_SERVER['REQUEST_URI'] );
$file = strtoupper($url[2]);
//$file = 'OH0400';
$filename = '/dir/oralhistory/mp3files/'.$file.'*.mp3';
$FILES = glob( $filename );
foreach( $FILES as $key => $mp3 ) {
$mp3 = str_replace( '/dir/oralhistory/mp3files/', '',$mp3);
$FILE_LIST[ $key ][ 'title' ] = $mp3;
$FILE_LIST[ $key ][ 'mp3' ] = 'http://websiteurl.org/mp3files/'.$mp3;
}
$myjplayerdata = json_encode( $FILE_LIST );
header ( 'Content-type: application/json' );
echo $myjplayerdata;
exit;
die();
};
这是我的javascript:
ajax_player = function() {
jQuery('div#player').load('/js/player.html' , function() {
var cssSelector= {
jPlayer: "#jquery_jplayer_1",
cssSelectorAncestor: "#jp_container_1"
};
var playlist = [];
var options = {
swfPath: "/js/Jplayer.swf",
supplied: "mp3",
smoothPlayBar: true,
keyEnabled: true
};
var myPlaylist = new jPlayerPlaylist(cssSelector, playlist, options);
jQuery.ajax({
url: "/wp-admin/admin-ajax.php" ,
type: "POST",
dataType: "text json",
data: { action: "MyjPlayerList"},
success:(function(data) {
jQuery.each(data, function(index, value){
myPlaylist.add(value); // add each element in data in myPlaylist
console.log(data);
})
})//function (data) close
})//ajax close
})//jquery.load
}//ajax_player
是的,请检查您使用的字符编码。这可能是问题所在。
多亏了 Marc 的调试,事实证明,当我在 page 中运行脚本时我得到的和当我调用带有 javascript 的脚本时得到的都是不同的。 它试图使用admin-ajax.php而不是URL。
相关文章:
- 以纯文本加载的脚本-未声明纯文本文档的字符编码
- 在应用程序脚本中将 base64 编码的图像与 HtmlService 一起使用
- 谷歌应用程序脚本和JavaScript中base64编码的不同结果
- JSON编码数据未解析到PhP脚本中的JqPlot图表
- 在 Java 脚本中使用追加时 HTML 标记不起作用,但在执行硬编码时 html 代码工作正常
- Windows媒体编码器9插入(链接,脚本)处理
- 使用 HTML 脚本标记在它们具有源代码时进行编码
- 函数.php当变量未硬编码时脚本中断
- 如何避免在 js/ajax 脚本中对应用程序上下文路径进行硬编码
- 避免仅使用前端脚本对 Google 进行地理编码的多次请求
- 在c#中使用带有远程脚本的类时更改编码
- 如何在java脚本中对非ascii字符进行编码
- java脚本字符串的正确编码方式
- 改变java脚本函数的编码
- 如果else语句和Java脚本编码问题
- 使用Java脚本格式化输入类型的编码
- 如何在jquery/脚本传递用户输入数据?我正在使用编码器PHP框架
- 为什么fs.readFileSync编码单引号内的脚本标签为"
- 如何编码这个脚本
- 如何编码一个脚本,可以扫描在我的网站的链接,并产生缩略图;就像Facebook一样