У меня есть столбец (называемый start_date), который представляет собой дату начала отпуска сотрудника. Это вход, который имеет значение по умолчанию текущей даты. Рядом с этим входом существует календарный (кнопочный) вход. Когда пользователь выбирает дату из этого календаря, это значение также сохраняется в db. Значения автоматически сохраняются через ajax без кнопки отправки. Также существует кнопка, которая добавляет новые строки. Моя проблема в том, что вам нужно обновить страницу, чтобы отобразить мне календарь, и когда я нажимаю дату, календарь исчезает снова. Также при нажатии кнопки «Добавить» календарь снова исчезает, и в этом случае я обновляю свою страницу. HTML-код
<?php $functions=new classes; $result=$functions->query("SELECT a.id as a_id,r.reason as id_reason, DATE_FORMAT(a.start_date ,'%d-%m-%Y') as start_date, a.duration as duration, a.notes as notes, st.name as id_status_adeia FROM reason r, absent a,status_adeia st WHERE a.id_reason=r.id AND st.id=a.id_status_adeia AND a.id_proswpiko='$id'"); $tabindex_counter=1; echo " <table class='main'> <tr class='main'> <th class='main'>Reason</th><th class='main'>Start Date</th><th class='main'>Duration</th><th class='main'>Notes</th><th class='main'>Status</th><th class='main'>Delete</th> </tr>"; while ($row = mysql_fetch_assoc($result)){ echo "<tr class='main'>"; foreach ($row as $key=>$val) { if ($key!="a_id") { if ($key=="id_reason") { echo "<td class='main'><select id='".$row['a_id']."_$key' class='absent_edit' tabindex='$tabindex_counter' onchange='paint_select_yellow(this)' onkeypress='focus_next_input(this,event)' onblur='update_record (event,this,"absent","$key","id","".$row['a_id']."")'>";$functions->options_list("SELECT id,name FROM reason",$val,false);echo"</select></td>"; $tabindex_counter++; } elseif ($key=="id_status_adeia") { echo "<td class='main'><select class='absent_edit' id='".$row['a_id']."_$key' tabindex='$tabindex_counter' onchange='paint_select_yellow(this)' onkeypress='focus_next_input(this,event)' onblur='update_record(event,this,"absent","$key","id","".$row['a_id']."")' ".$_SESSION['disabled'].">";$functions->options_list("SELECT id,name from status_adeia",$row['id_status_adeia'],false);echo"</select></td>"; $tabindex_counter++; } elseif ($key=="start_date") { echo "<td class='main'><input disabled id='".$row['a_id']."_$key' class='absent_edit datepicker' tabindex='$tabindex_counter' onclick='update_record(event,this,"absent","$key","id","".$row['a_id']."")' value='$val'></td>"; $tabindex_counter++; else { echo "<td class='main'><input id='".$row['a_id']."_$key' class='absent_edit' tabindex='$tabindex_counter' onkeypress='focus_next_input(this,event)' onblur='update_record(event,this,"absent","$key","id","".$row['a_id']."")' type='text' value='$val'></td>"; $tabindex_counter++; } } } echo " <td class='main'><button class='button4' onclick='delete_record("absent","".$row['a_id']."")'><img src='delete.png' width='20' height='20'></button></td>"; echo "</tr>"; } echo "</table>"; echo "<br/>"; echo "<button class='button4' onclick='new_record_absent("$id")' value='ADD'/><img src='add.png' width='40' height='40'></button>"; ?>
Это код, который обновляет мои записи:
function update_record (evt,elem,table,field,check_field,check_var) { if (elem.tagName=="INPUT") { elem.value=capitalizeFirstLetter(elem.value); } document.getElementById('test_texts').innerHTML='worked'; var elem_id=elem.id;//store id to find the elem later in case a screen refresh has happened. var val=elem.value; if (field=="start_date" || field=="end_date") { var date_split=elem.value.split('-'); val=date_split[2]+"-"+date_split[1]+"-"+date_split[0]; } if (elem.style.backgroundColor=="yellow") {//update only if there has been a change loadXMLDoc("/staff/update_record.php?table="+encodeURIComponent(table)+"&field="+encodeURIComponent(field)+"&val="+encodeURIComponent(val)+"&check_field="+encodeURIComponent(check_field)+"&check_var="+encodeURIComponent(check_var),function() { if (xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById(elem_id).style.backgroundColor="lightgreen"; document.getElementById('test_texts').innerHTML=xmlhttp.responseText; } }) } }
Любые предложения, как я могу это решить? По какой-то причине, когда я нажимаю кнопку «Добавить» или обновляю дату, ajax не регистрирует элемент datepicker