我有一个基于PHP的网站.就像在,所有的页面html都是通过php输出的.
这是一个简单的例子:
<?php
ob_start();
$pageStart = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MY WEBSITE PAGE</title>
</head>
<body>
<p>CONTENT</p>
</body>
</html>
';
echo $pageStart;
exit;
?>
Run Code Online (Sandbox Code Playgroud)
我想做的是在这个页面中使用一些jquery.
所以我的第一次尝试自然是将脚本包含在php变量中,如下所示:
<?php
ob_start();
$pageStart = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var datefield=document.createElement("input")
datefield.setAttribute("type", "date")
if (datefield.type!="date"){ //if browser doesn't support input type="date", load files for jQuery UI Date Picker
document.write('<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />\n')
document.write('<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"><\/script>\n')
document.write('<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"><\/script>\n')
}
</script>
<script type="text/javascript">
if (datefield.type!="date"){ //if browser doesn't support input type="date", initialize date picker widget:
jQuery(function($){ //on document.ready
$('#birthday').datepicker();
})
}
</script>
</head>
<body>
<p>CONTENT</p>
</body>
</html>
';
echo $pageStart;
exit;
?>
Run Code Online (Sandbox Code Playgroud)
现在,我使用dreamweavers代码编辑器,由于语法高亮功能,将指出在此产生的大量语法错误.
所以我起初试图削减这些错误.这失败了.
因此我尝试将"s"更改为"s",反之亦然,直到错误消失为止.这也失败了,因为脚本似乎不会以这种方式验证.
所以我读了一些教程,发现了这个:
JavaScript和PHP可能都会为任何Web开发工作带来巨大潜力,但它们并不总能很好地协同工作.阅读有关问题的信息.
而我理解它的方式是,你需要包含js而不是直接将它作为你的php的一部分.
所以有一个名为page.php的文件和另一个名为jquery.php的文件.所以我决定尝试修改这个想法来解决我的问题.
所以我开始用这样的东西 - index.php:
<?php
ob_start();
$pageStart = '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MY WEBSITE PAGE</title>
'. include $_SERVER['DOCUMENT_ROOT'] . '/../../path/to/include/datepicker.php'.'
</head>
<body>
<p>CONTENT</p>
</body>
</html>
';
echo $pageStart;
exit;
?>
Run Code Online (Sandbox Code Playgroud)
并且 - datepicker.php:
<script language="Javascript">
var datefield=document.createElement("input")
datefield.setAttribute("type", "date")
if (datefield.type!="date"){ //if browser doesn't support input type="date", load files for jQuery UI Date Picker
document.write('<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />\n')
document.write('<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"><\/script>\n')
document.write('<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"><\/script>\n')
}
</script>
<script language="Javascript">
if (datefield.type!="date"){ //if browser doesn't support input type="date", initialize date picker widget:
jQuery(function($){ //on document.ready
$('#birthday').datepicker();
})
}
</script>
Run Code Online (Sandbox Code Playgroud)
现在这两个页面都没有语法错误,很棒......所以我试试看,有一半期待事情最终正常工作......
不...致命错误:无法打开流:没有这样的文件或目录等等等等.此错误与我添加的包含有关.好吧,即使文件在那里,它也没有被验证为php,因为没有打开和关闭php标签.
所以我添加它们...... Annnd ...再次出现语法错误的页面!
所以我的问题是:
有些人可以分享一些知识并向我解释这个过程实际上是如何运作的.什么是语法错误的处理是什么,你应该怎么做这样的任务?
我相信它是可能的,是的,如果我没有通过php输出整个html,它会更容易.但这是一个简单的例子,我的实际设计更复杂.它需要将页面的不同部分分解为变量,以便在需要时动态地放置这些位和peices.
任何意见,建议或见解将不胜感激; 任何涵盖此内容的页面或教程的链接也将不胜感激.
谢谢!!
要在PHP中使用jQuery,您需要做的就是在头文件中的HTML文档中包含jQuery javascript文件.我实际上一直使用PHP和jQuery.这就是我这样做的方式.在上面的代码中,您的代码看起来有一些转义问题.而且看起来你想要在PHP变量中保存页面的标题然后将其打印出来.你不必完成所有这些.只需将纯文本放在PHP文件中,不要使用任何php标签,它就能正常工作.此外,您使用的是旧版本的jQuery.应该使用最新版本.但是,如果您需要将它存储在PHP变量中以便打印出来,请执行以下操作:
那么,这里有一些代码可以帮助您入门.
<?php
$pageStart = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MY WEBSITE PAGE</title>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/jquery-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
$("#date").datepicker();
});
</script>
</head>
<body>
<input type="text" id="date" name="date" />
</body>
</html>';
print $pageStart;
?>
Run Code Online (Sandbox Code Playgroud)