2011-01-05 43 views
3

即时消息试图做的是在jquery附加属性中使用php include。是这样的:使用php包括在jquery中

$('a.popup[href^=#]').click(function() { 
$('body').append('<div id="content" class="popup_block"><?php include(SITE_URL . 'activity/popup.php') ?></div>'); 

我的脚本是一个PHP文件,服务器端,这样我就可以做到这一点,但林不知道如何去做。当涉及到HTML,CSS等我可以在PHP文件中结合它和PHP,但是当涉及到JavaScript,其引用混淆了我,什么时候以及如何使用括号。这听起来可能令人困惑。无论如何,CDATA与它有什么关系?我以前从未使用过,但我应该至少了解它的用途。

回答

4

PHP解释器只会查找<?php?>标签并尝试评估其中的任何内容。它并不关心周围的报价。你需要确保尽管PHP所做的结果是有效的Javascript。

var foo = '<?php include 'foo.php'; ?>'; 

成为

var foo = 'This is the content of foo.php.'; 

PHP是用它做了。

如果有任何foo.php报价,有可能成为这样的:

var foo = 'This is the 'content' of foo.php.'; 

这是无效的JavaScript语法。您需要转义可能导致此类无效语法的任何字符foo.php,例如addslashes。虽然这可能非常麻烦,所以我建议先寻找替代方案。

可以使用JSON,这绝对是语法安全编码值:在代码

var foo = <?php echo json_encode("Some string with 'quotes'."); ?>; 

生成代码始终是棘手的,试试看能不能做到这一点,并坚持与语言无关的数据交换格式,如JSON或XML 。

+0

对于'json_encode()'+1。不知道那个。 – JakeParis 2011-01-05 03:13:52

+0

我需要一个特殊的插件来调用JSON吗?现在我正在使用jQuery 1.4.4 – Sin 2011-01-05 03:16:53

+0

@Sin [JSON是Javascript对象表示法](http://en.wikipedia.org/wiki/Json),它是适用于简单数据交换格式的有效Javascript。不,你不需要任何特别的东西来使用它。 – deceze 2011-01-05 03:19:02

1

如果你100%确定你的包含中没有任何单引号,那么你应该没有问题。

如果您想将其可视化,请将所有生成的代码从包含的php文件中复制并粘贴到append()的主页面中。看看它看起来如何。这会给你一个浏览器最终结果的好主意。

+0

嗯,你知道,我从来没有想过这件事。这是否适用于包含的PHP文件的内容? – Sin 2011-01-05 03:07:22

+0

是的!看到我上面的编辑可视化最终结果。 – JakeParis 2011-01-05 03:08:40

+0

哦,那么,这是一个合法的标记? jquery里面的''?只要确保我没有留下任何东西 – Sin 2011-01-05 03:09:44