1

我想制作一个日期选择器,并使用 javascript 制作日历。代码如下:

<html>
<head>
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
 <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
 <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
$(function() {
$( ".datepicker" ).datepicker();
});
</script>
</head>
<body>
    <div class="date-picker">
    <p>From:<input type="text" class="datepicker" /></p><br>
    <p>To  : <input type="text" class="datepicker" /></p>
    </div>
</body>
</html>

如果我把它写在一个 html 文件中它工作正常,但我想把它写到一个 php 中,因为我也想使用数据库查询。所以,我在 php 中这样编写 javascript:

<html>
<head>
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
 <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
 <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<?php
echo '<script>';
echo '$(function() {';
echo '$( ".datepicker" ).datepicker();';
echo '});';
echo '</script>';
?>
</head>
<body>
<?php
echo '<div class="date-picker">';
echo '<p>From:<input type="text" class="datepicker" /></p><br>';
echo '</div>';
?>
</body>
</html>

它不工作。有任何想法吗?

4

4 回答 4

1

替换$(function() {})

  $(document).ready(function() {
    $('.datepicker').datepicker()
  });

此外,您不需要echojavascript。请记住,php 是一种基于模板的语言,因此您可以像这样传递数据:

$('<?php echo $selector ?>').width(<?php echo (int) $width ?>);
于 2013-08-09T11:59:16.887 回答
1

我不确定您是否了解客户端-服务器架构的正确性:

  1. 如果请求 url,则在执行代码的 http 服务器上解释 php 代码。然后将 php 代码的输出发送到客户端。
  2. 当页面从服务器加载时,javascript 在客户端上执行。

Web 应用程序的 php 部分(至少在经典设计中)不会与客户端 javascript 代码同时运行。如果你想在服务器端用 php 做数据库的东西,在客户端用 javascript 做一些视觉效果/控件,你有一些选择:

  1. 在 php 中生成 javascript:您生成要在客户端上执行的代码。这可能会填充一个稍后将由 js 解释的数组。
  2. 提供一个包含 javascript 并要求服务器提供 php 生成的数据的静态 html 页面。这可以使用XMLHTTPRequest.
  3. 存在一些其他方法但未广泛使用,例如可以通过 WebSockets 而不是 XMLHTTPRequest 进行通信。
于 2013-08-09T11:57:59.983 回答
1

您可以使用此代码调用 javascript 函数。

<?

    if ($value eq "") {
    echo "<SCRIPT LANGUAGE="javascript"><!--n";
    echo "datepicker();n";
    echo "// --></SCRIPT>n";
    }

    ?>
于 2013-08-09T12:06:07.847 回答
0

编写简单的脚本,如下所示:

<?php
    echo "<script>
      $(function() {
         $( '.datepicker' ).datepicker();
      });
   </script>";
?>
于 2013-08-09T11:54:59.200 回答