datepicker图标在更新日期或添加日期后消失

时间:2017-12-10 17:12:43

标签: javascript php datepicker

我有一个网页,当用户输入自动保存在数据库中的日期时。我还有一个datepicker图标来选择日期。但是当我更新或按下添加按钮添加新条目(或删除图标以删除特定条目)时,所有日期选择器图标都会消失。我刷新页面以再次出现datepicker图标。我认为ajax调用忽略了javascript日期选择器
    HTML代码:

echo "<td class='main'><input disabled id='".$row['a_id']."' class='apousies_edit datepicker' tabindex='$tabindex_counter'  onclick='update_record(event,this,&quot;apousies&quot;,&quot;$key&quot;,&quot;id&quot;,&quot;".$row['a_id']."&quot;)' value='$val'></td>";
                    $tabindex_counter++;

    echo "<button class='button4' onclick='new_record_adeia(&quot;$id&quot;);showDatePicker(tabindex)' value='Προσθήκη Άδειας'/><img src='add.png' width='40' height='40'></button>";   

Ajax电话:

    function new_record_adeia(id) {

        loadXMLDoc("/prosopiko/add_rec_adeia.php?id="+encodeURIComponent(id),function()
                {
                      if (xmlhttp.readyState==4 && xmlhttp.status==200)

                        document.getElementById('apousies_edit').innerHTML=xmlhttp.responseText;


                })


    }

我用来添加日期的代码:

    session_start();
        include "classes.php";
        $functions=new classes;

        $id_proswpiko=trim($_REQUEST["id"]);
        $now=date('Y-m-d');
        $res=$functions->query("INSERT INTO apousies(id_proswpiko,id_logos,start_date,diarkeia,id_status_adeia) VALUES ('$id_proswpiko',1,'$now','4','1')");

        $functions->create_apousies_screen($id_proswpiko);

Jacascript code to show the datepicker I get it from this:
https://github.com/chrishulbert/datepicker/blob/master/datepicker.js

更新日期:

session_start();
include "classes.php";

$functions= new classes;

$table=trim($_REQUEST["table"]);
$field=trim($_REQUEST["field"]);
$val=trim($_REQUEST["val"]);
$check_field=trim($_REQUEST["check_field"]);
$check_var=trim($_REQUEST["check_var"]);    

$sql="UPDATE $table SET $field='$val' WHERE $check_field='$check_var'";

$result=$functions->query($sql);

出了什么问题,我的日期选择器不起作用?

1 个答案:

答案 0 :(得分:0)

  

datepicker图标在更新日期或添加日期后消失

图标消失,因为datepicker库在表单加载时设置日期选择器(特别是在DOMContentLoaded事件触发时)。然后,您创建一个ajax调用,用一个更新的项目列表替换包含日期选择器图标的HTML。

由于此时库已经完成了它的工作,新的html控件将不会获得datepicker图标(也没有任何与该库相关的功能)。

恕我直言,你有两种选择:

  • 修改库,以便添加一个setupPicker方法,您可以在用ajax结果替换HTML后手动调用该方法。

  • 使用已提供该功能的其他库。

我会选择第二个选项,因为该库是9yo,而document.getElementsByTagName("*")(请参阅最后的源代码)看起来非常糟糕。