是否可以将javascript放入php函数?如果是这样,有人可以告诉我我的代码有什么问题吗?因为每当我将多个javascript放入php函数时,我的整个功能都将丢失。
<?php
function headerA($title,$css) {
$headContent = <<<HEAD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
<title>$title</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="$css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("li").click(function(e) {
e.preventDefault();
$("li").removeClass("selected");
$(this).addClass("selected");
});
});
</script>
</head>
<body>
<div id = "header">
</div>
HEAD;
$headContent .="\n";
return $headContent;
}
?>
答案 0 :(得分:1)
你的代码很好。请确保你:
HEAD;
放在行的最开头(没有前置空格)$
符号。 JavaScript(jQuery)中的$
符号与PHP的字符串$
变量标记冲突。前置$
将反斜杠如下:\$
。
答案 1 :(得分:1)
你应该逃避$
<<<HEAD
$php_variable
\$('jQuery');
HEAD;
或使用输出缓冲区
<?php ob_start(); ?>
<?= $php_variable ?>
$('jQuery');
<?php $head = ob_get_clean(); ?>
答案 2 :(得分:1)
不要使用header作为函数名,因为它是php的预定义函数。
Heredoc文本的行为就像双引号字符串,没有双引号。在结束HEAD
行之前应该没有空格,如下所示。
<?php
function header1($title,$css) {
$headContent = <<<HEAD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
<head>
<title>$title</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="$css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("li").click(function(e) {
e.preventDefault();
$("li").removeClass("selected");
$(this).addClass("selected");
});
});
</script>
</head>
<body>
<div id = "header">
</div>
HEAD;
$headContent .="\n";
return $headContent;
}
echo header1("title", 'url');
?>