使用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"
});
});
});
');
这给了我:解析错误:语法错误,网址行意外T_VARIABLE。不确定报价应该如何。我想我不能把$id_hash
放在那里(我猜是因为错误)。有什么想法吗?
答案 0 :(得分: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'
});
});
});
");
答案 1 :(得分: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;