我似乎有语法错误,自己看不到,有人能帮我检查一下吗?
谢谢。
<script>
var acurl_<?php echo $request_data['friendship_id']; ?> = "sn-include/create_bond_accept.php?friendship_id=<?php echo $request_data['friendship_id']; ?>&friend_id=<?php echo $fromuser['id']; ?>";
</script>
因为您得到了一些旨在向您展示如何改进代码的答案,但实际上并没有这样做(IMO),所以我的尝试是:
<?php
$acurl = array();
$acurl[$request_data['friendship_id']] = sprintf('sn-include/create_bond_accept.php?friendship_id=%s&friend_id=%s', $request_data['friendship_id'], $fromuser['id']);
?>
<script>
var acurl = <?php echo json_encode($acurl); ?>
</script>
我不会创建动态变量名。这段代码将创建一个JS对象,其中的属性是友谊ID,类似于:
{
'42': 'sn-include/create_bond_accept...'
}
与使用动态变量名相比,您可以更容易地从JavaScript访问这些URL。
David,好的一面是,您没有语法错误。
如果你正在开发PHP,我建议你做两件事:
- 获得更好的IDE。Dreamweaver非常适合使用PHP。我推荐NetBeans(它很棒而且免费)
- 开始将代码分解成块。html和PHP的大球很难调试
看看这个:
<?php
// prepare output
$segment = '?friendship_id=' . $request_data['friendship_id'];
$segment .= '&friend_id=' . $fromuser['id'] . '";' . "'n";
$acurl = 'var acurl_' . $request_data['friendship_id'];
$acurl .= ' = "sn-include/create_bond_accept.php';
$acurl .= $segment;
$dnurl = 'var dnurl_' . $request_data['friendship_id'];
$dnurl .= ' = "sn-include/create_bond_deny.php';
$dnurl .= $segment;
?>
<script type="text/javascript">
<?php
echo $acurl;
echo $dnurl;
?>
</script>
使用此处文档:
<?php
echo <<<JS
<script>
var acurl_{$request_data['friendship_id']} = "sn-include/create_bond_accept.php?friendship_id={$request_data['friendship_id']}&friend_id={$fromuser['id']}";
</script>
<script>
var dnurl_{$request_data['friendship_id']} = "sn-include/create_bond_deny.php?friendship_id={$request_data['friendship_id']}&friend_id={$fromuser['id']}";
</script>
JS;
?>
请参阅http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc