将 PHP 变量解析为 Jquery UI 默认日期选择器

parseing a PHP Variable to Jquery UI Datepicker as default

我已经用谷歌搜索了一段时间了,简要介绍一下我是 PhP 的新手和 JQuery UI 的新手。我很感激我正在使用的 PhP 现在已经过时了,但是我正在“修复”一个 MySQL 数据库 UI 以便工作让我的生活更轻松(在长 运行 中)因此,我首先自学 PhP 的原因(工作没有任何现金来修复它,并且回应是哦,好吧,使用 excel 电子表格重写整个薄。 我能找到的最接近的修复是 post 这里 How can I pass PHP variable to Datepicker in jQuery?

然而没有喜悦。使用它创建/读取和删除我没有问题我的问题来自更新,因为现有数据未分配给要输入的 JQuery id。 我正在使用的变量用于填充到文本框,而不是 posted 的值.....grrr! 我的整个脚本长 1900 行,所以希望 posting 相关位就足够了。 我的 header Jquery 代码和我的表单更新代码:

enter code here

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness    /jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<!-- 3 datepicker javascripts -->
<script> language ="javascript">
$(function() {
$( "#datepicker" ).datepicker();
$('#userDatedr').datepicker({dateFormat:"dd MM yy",
            altField: '#drDate', altFormat: 'yy-mm-dd'});
                //Set javascript date to php variable 
            var phpDate = "<?php echo $grab_staff[driver_exp]?>";
});


                $("#drDate").datepicker("setDate",phpDate);
</script>
<?php
<body>
<html>

print("<tr><td id='employee_left'>Drivers Licence:</td><td>
            <b>Number:</b>&nbsp;<input type='text' name='driver_num'            value='$grab_staff[driver_num]' maxlength='15'     /><br />");
            print("<tr><td id='employee_left'><b>Expiry:</b>&nbsp;</td><td>    <input type= 'text' value='$grab_staff[driver_exp]'     id=\"userDatedr\" maxlength='10'><input type=\"text\" id=\"drDate\"     name=\"drDate\">");

?>
</body>
</html>

澄清一下,如果我 select 一个新日期,日期选择器在编辑时可以工作,我希望能够 re-post 数据库中的现有日期并进行更新,而无需用户 select 日期选择器日历中的日期再次记住此表格有 4 个不同的日期字段,出生日期,驾驶执照到期日期,原始入职日期和最后入职日期。代码上方的当前字段指的是驱动程序的到期日期。一旦我完成故障查找,posted 的值将从文本更改为隐藏,因此目前它提供两个字段,第一个字段显示日期库中的原始日期,如果使用 datepicker 更改为新日期 如果未使用日期选择器更改日期,将隐藏的第二个文本框为空白。 任何帮助/建议将不胜感激 干杯

杰斯

<script> language = "javascript"> 应该类似于 <script type="text/javascript"> code here </script>.

$(function() { your code here } 不确定你想在这里做什么,但我会把它放在这样的文档中:

也不要在发送给日期选择器的对象中声明变量,最好在上面这样做

$(document).ready(function() {
        //Set javascript date to php variable 
        var phpDate = "<?php echo $grab_staff[driver_exp]?>";
        $( "#datepicker" ).datepicker();
        $('#userDatedr').datepicker({dateFormat:"dd MM yy",
            altField: '#drDate', altFormat: 'yy-mm-dd'});
        });
        $("#drDate").datepicker("setDate",phpDate);
});

但也许首先从检查控制台开始(按 F12 单击控制台)看看出现了什么错误。

我建议不要试图让整个事情同时工作,试着一部分一部分地做,例如首先看看你是否可以像这样提醒 javascript 中的 php 变量:

<script type="text/javascript"> 
     var phpDate = "<?php echo $grab_staff[driver_exp]?>";
     alert(phpDate);
</script>

如果您看到正确的日期,好的,请转到下一步,通过首先像这样测试第一个日期选择器来检查日期选择器是否正常工作:

<script type="text/javascript>
    $(document).ready(function() {
        $( "#datepicker" ).datepicker();
    });
</script>

如果这可行,请转到下一步并像这样工作,这样您就不必一次修复 300 个错误,但您可以让它一部分一部分地工作更容易

我已经编辑了我原来的代码行:

print("<tr><td id='employee_left'><b>Expiry:</b>&nbsp;</td><td>    <input type= 'text' value='$grab_staff[driver_exp]'     id=\"userDatedr\" maxlength='10'><input type=\"text\" id=\"drDate\"     name=\"drDate\">");

print("<tr><td id='employee_left'><b>Expiry:</b>&nbsp;</td><td><input type= 'text' value='$grab_staff[driver_exp]' id=\"userDatedr\" maxlength='10'><input type=\"text\" value='$grab_staff[driver_exp]' id=\"drDate\" name=\"drDate\">");

现在可以使用了,感谢@herriekrekel 的所有建议我一路上学到了一些东西,请注意我使用的是 php 5.3.3 所以不知道这个答案与其他答案的相关性如何用户。

除此之外,我还发现不需要在 header 中声明 php 变量作为脚本的一部分,我注释掉了所有建议的附加代码并且它起作用了如预期。只要在输入代码中声明了 php 变量,它就会按要求工作;请注意,第二个文本输入需要在生产环境中更改为隐藏。 干杯

杰斯