[英]How to pass the right variable to a FB.ui script in a JqueryMobile multipage dynamically created html file
我正在使用FB.ui发布到动态创建的Jquery多页内的Facebook用户墙吗?
function print_sharescript($values) {
echo "
<script>
FB.init({appId: \"$_SESSION[appId]\", status: true, cookie: true});
function postToFeed() {
// calling the API ...
var obj = {
method: 'feed',
link: '$values[link]',
picture: '$values[picture]',
name: '$value[name]',
caption: '$value[caption]',
description: '$value[description]'
};
function callback(response) {
// document.getElementById('msg').innerHTML = \"Post ID: \" + response['post_id'];
}
FB.ui(obj, callback);
}
</script>
";
}
... code ...
foreach ($des=>$val) {
// explode $val and fill the $values[$des][...] array ($des: from 0 to 10)
print_sharescript($values[$des]);
echo "// MY OUTPUT....";
echo "<a onclick='postToFeed(); return false;'>Share</a>";
}
.... code ....
除共享值始终是最后一个数组值外,其他所有程序都运行良好。 如果我看html代码,循环中的每个脚本都有其正确的值,但FB Share弹出窗口中的值是错误的。
我想的问题是由于obj变量。 我该如何纠正错误?
如果查看PHP代码的输出,应该可以看到重复了postToFeed javascript函数定义。 由于函数每次都具有相同的名称,因此最新的提及将覆盖所有其他定义。
这是未经测试的伪PHP,但是您可以尝试执行以下操作:
// You could actually move this into your .js or .html file instead
function print_sharescript($values) {
echo "
<script>
FB.init({appId: \"$_SESSION[appId]\", status: true, cookie: true});
function postToFeed(obj) {
obj.method = 'feed';
function callback(response) {
// document.getElementById('msg').innerHTML = \"Post ID: \" + response['post_id'];
}
FB.ui(obj, callback);
}
</script>
";
}
... code ...
print_sharescript();
foreach ($des=>$val) {
$json = addslashes(json_encode($val));
echo "<a onclick='postToFeed($json); return false;'>Share</a>";
}
.... code ....
还要考虑采用一些模板系统。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.