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


PHP + JQuery - How to use these two together? Please see my example

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

我想做的是利用这个页面中的一些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;
?>

现在,我使用dreamweavers代码编辑器,由于语法突出显示功能,它将指出在此过程中产生的大量语法错误。

因此,我一开始试图删掉这些错误。这失败了。

因此,我尝试将"s"更改为"s",反之亦然,直到错误消失。这也失败了,因为脚本似乎不会以这种方式验证。

所以我读了一些教程,发现了这个:

JavaScript和PHP都可能为任何Web开发工作带来巨大的潜力,但它们并没有;Don’我不总是在一起玩得很好。阅读有关问题的信息。

我的理解是,你需要包含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;
?>

和-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>

现在两个页面都没有语法错误,太好了。。。所以我尝试了一下,有点期待事情最终会成功。。。

不。。。致命错误:无法打开流:没有这样的文件或目录等等。这个错误与我添加的include有关。所以,好吧,即使文件在那里,它也不会被验证为php,因为没有打开和关闭php标记。

所以我加上它们。。。Annnd。。。又是一个充满语法错误的页面!

所以我的问题是:

请一些人分享一些知识,并向我大致解释这个过程的实际工作原理。所有的语法错误是怎么回事?你应该如何完成这样的任务?

我相信这是可能的,是的,如果我不通过php输出整个html,这会更容易。但这是一个简单的例子,而我的实际设计要复杂得多。它要求将页面的不同部分分解为变量,以便在需要时动态地放置这些位和位。

任何意见、建议或见解都将不胜感激;任何涉及这方面的页面或教程的链接也将不胜感激。

谢谢!!

在PHP中使用jQuery所需要做的就是在head标记中的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;
?>
<head>
<script type="text/javascript"
 src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    // javascript & jquery code
    // even better would be if you would put client code in separate file!!!
  });
</script>
</head>
<body>
<?php
   echo "bla bla bla";
?>
</body>

和+1111到@Heera的评论你错过了基础知识。

使用Heredoc。成千上万的语法错误将消失。

请参阅页面的heredoc版本,

  1. http://pastie.org/3412925
  2. http://pastie.org/3412929
  3. http://pastie.org/3412935//此处您已使用include进行联系。include不返回任何内容。它只是包括。所以它发生了不同的变化

我认为应该是

. (include ($_SERVER['DOCUMENT_ROOT'] . '/../../path/to/include/datepicker.php')) .

否则php将尝试包含所有内容,直到达到l(标记将被解释为文件名的一部分)。

另外,就php代码而言,在包含文件之后(一旦成功),include语句将转换为数字1,而不是文件的内容。

使用

<? $abc <<<qwerty
...
...
...
qwerty;
return qwerty;
?>

对于要包含的所有文件