PHP + JQuery - 如何将这两者结合使用?请看我的例子

Cra*_*der 9 php jquery

我有一个基于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.

任何意见,建议或见解将不胜感激; 任何涵盖此内容的页面或教程的链接也将不胜感激.

谢谢!!

Ray*_*rea 9

要在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)

  • 我没有开始编程PHP,PHP对我来说相对较新(仅在过去12年左右)所以,使用print是我从其他编程语言习惯的习惯.另外,因为我仍然使用其他语言编程,所以我使用print,因为它不需要记住.print和echo之间的区别在于print返回true,并且稍微慢一些(非常小).另外,有了print,我可以编写像<?php $ content和print $ content这样的语句; ?>你不能用echo做到这一点.所以,对我来说,这是一个编程风格和灵活性以及习惯的问题.干杯. (2认同)