0

使用 jquery 我这样做:

$(function() {
$('#iButton').change(function() {
    $.ajax({
       url: 'index.php?option=com_cameras&task=globalmotiondetection&id_hash=<?php echo $id_hash; ?>&global_monitoring='+ (this.checked ? 1 : 0) + '&format=raw'

    });
});
});

这很好用。但现在我将它放入一个 php 函数(Joomla 编码)但无法找出引号:

$doc->addScriptDeclaration('
$(function() {
$("#iButton").change(function() {
    $.ajax({
       url: "index.php?option=com_cameras&task=globalmotiondetection&id_hash='$id_hash'&global_monitoring="+ (this.checked ? 1 : 0) + "&format=raw"
    });
});

});
');

这给了我:解析错误:语法错误,url 行上的意外 T_VARIABLE。不知道引号应该是什么样子。我想我也不能放在$id_hash那里(我猜是因为错误)。有任何想法吗?

4

2 回答 2

0

为了使其更简单,请使用 Heredoc。见http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$str = <<<EOT
$(function() {
    $("#iButton").change(function() {
        $.ajax({
           url: "index.php?option=com_cameras&task=globalmotiondetection&id_hash='$id_hash'&global_monitoring="+ (this.checked ? 1 : 0) + "&format=raw"
        });
    });
});

EOT;
于 2012-12-07T04:00:55.537 回答
0

要将变量连接成单引号字符串,可以使用连接运算符.

$doc->addScriptDeclaration('
$(function() {
$("#iButton").change(function() {
    $.ajax({
       url: "index.php?option=com_cameras&task=globalmotiondetection&id_hash=' . $id_hash . '&global_monitoring="+ (this.checked ? 1 : 0) + "&format=raw"
    });
});

});
');

或者,您可以改用双引号字符串,这样您就可以在内部插入变量:

$doc->addScriptDeclaration("
$(function() {
$('#iButton').change(function() {
    $.ajax({
       url: 'index.php?option=com_cameras&task=globalmotiondetection&id_hash=$id_hash&global_monitoring='+ (this.checked ? 1 : 0) + '&format=raw'
    });
});

});
");
于 2012-12-07T03:55:57.307 回答