【问题标题】:ASK - jquery datepicker - keep selected date in text inputASK - jquery datepicker - 在文本输入中保留选定的日期
【发布时间】:2015-06-04 11:49:50
【问题描述】:

我用 html、php 和 jquery 制作了一个页面。 我的 php 脚本将加载日期等于在使用 JQuery datepicker 的文本输入中选择的日期的所有数据。

我的问题是当我在 datepicker 中选择了一个日期然后页面将加载数据时,datepicker 中的文本输入为空白(没有文本或日期)。

那么如何在文本输入中保留所选日期?

  <link rel="stylesheet" href="/resources/demos/style.css">

$(function() {
    $("#datepicker").datepicker({dateFormat: 'yy-mm-dd'});
});

$(document).ready(function() {
    $('#datepicker').change(function() {
        $('#calendar').submit();
    });
});

我需要一些建议来解决这个问题。所以谢谢你的帮助。如果我的主题与其他主题相似,我也想道歉。

感谢您的帮助。

这是我的代码脚本

<center>
<form id="calendar" action="<?php echo $_SERVER['PHP_SELF'];?>" method="GET">
<div id="datepicker_start"></div>
<input type="hidden" id="datepicker" name="datepicker">
</form>
</center> 



<?php
$host = "localhost";
$dbname = "dbname";
$username = "root";
$password = "";
try {
 $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $pe) {
 die("Could not connect to the database $dbname :" . $pe->getMessage());
}

if(isset($_GET["datepicker"])){
$datepicker = $_GET["datepicker"];
$datepicker2 = date('d-m-Y', strtotime($datepicker));
}else{
$datepicker = date('Y-m-d');
$datepicker2 = date('d-m-Y', strtotime($datepicker));
} 
 $stmt = $conn->prepare("my query");
 $stmt->bindParam(':date', $datepicker);
 $stmt->execute();

 $result = $stmt->fetchall();

 if (empty($result)) {
     echo "<center><h3>.:: Schedule <i>". $datepicker2 ." ::.</i></h1></center>";
     echo "<center><h1>.::No Data::.</h1></center>";
 }else{ 
     echo "<center><h3>.:: Schedule <i>". $datepicker2 ." ::.</i></h1></center>";
     echo 
    "<table>
    <tr>
    <th>Data 1</th>
    <th>Data 2</th>
    <th>Data 3</th>
    <th>Data 4</th>
    <th>Data 5</th>
    <th>Data 6</th>
    <th>Data 7</th>
    <th>Data 8</th>
    <th>Data 9</th>

    </tr>"
    ;

    foreach($result as $row)
    {
  echo "<tr>";
  echo "<td>" . $row['data 1'] . "</td>";
  echo "<td>" . $row['data 2'] . "</td>";
  echo "<td>" . $row['data 3'] . "</td>";
  echo "<td>" . $row['data 4'] . "</td>";
  echo "<td>" . $row['data 5'] . "</td>";  
  echo "<td>" . $row['data 6'] . "</td>";
  echo "<td>" . $row['data 7'] . "</td>";
  echo "<td>" . $row['data 8'] . "</td>";
  echo "<td>" . $row['data 9'] . "</td>";

}

  echo "</tr>";
  echo "</table>";
}
?>

【问题讨论】:

  • 你能在 jsFiddle 中添加这段代码并使用正确的 php 链接吗?这样我就可以检查选择日期时那里发送的数据以及作为响应发送的数据。
  • 您需要将值存储在 cookie/localStorage 中或将其作为查询字符串附加,在页面加载时读取并将其设置为输入字段。
  • 或者如果你的表单方法是post,那么你可以这样做:$_POST["InputFieldName"]
  • 大家好,实际上我已将日期选择器更改为始终显示,而不是使用文本输入。但我仍然很想知道如何保持选定的日期。我的表单使用了 GET 方法。有关系吗?而且实际上我在一个文件(css、php、jquery、html)中制作了脚本,所以我对使用 jsFiddle 感到困惑。我很抱歉。如果允许,我会发布我的脚本(编码风格不好)......

标签: javascript php jquery html datepicker


【解决方案1】:

表单提交会重新加载页面。 因此,您应该在表单提交时从服务器脚本发送日期并将其设置在输入字段中。 或者你可以使用ajax

【讨论】:

  • 感谢 Yash 的建议。我会试试的。
猜你喜欢
  • 2017-07-26
  • 2017-09-16
  • 1970-01-01
  • 2021-07-24
  • 2014-07-25
  • 1970-01-01
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多