24.02.2017, 08:50
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Не открывается календарь datapicker в ячейках таблицы
Доброго дня.
Подключаю календарь:
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript" src="test.js"> </script>
Есть таблица,в ячейки которой надо вставить даты из календаря:
<p>Date: <input id="datepicker" type="text" ></p>
<table><tr><td class="edit payment_date 44380">11.11.2016</td></tr>
<tr><td class="edit payment_date 44381">12.11.2016</td></tr>
<tr><td class="edit payment_date 44381">13.11.2016</td></tr>
</table>
jQuery(document).ready(function ($){
$(function() {
$("#datepicker").datepicker();
});
$(document).on('click', 'td.edit', function(){
arr = $(this).attr('class').split( " " );
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
$(this).addClass('ajax');
$(this).html('<input id="editbox" size="4" value="' + $(this).text() + '" type="text">');
$('#editbox').select();
$('#editbox').focus();
$('#editbox').datepicker();
});
})
так вот при нажатии на верхний инпут-календарь открывается мгновенно (это сделал для проверки).
При нажатии на ячейку таблицы- поле превращается в инпут, НО КАЛЕНДАРЬ включается в нем спустя 10-20 секунд. Что интересно - вчера работало все на отлично (по первому щелчку делался инпут, по второму открывался календарь сразу), но я что то сделал и начало тупить. Пол ночи не спал, пытался разобраться. Помогите пожалуйста.
|
|
24.02.2017, 10:07
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
datepicker изменение даты в ячейке таблицы
kupidon,
для изменения, кликнуть по дате, выбрать нужную в календаре.
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script>
$(function() {
$("td.edit").on("click", function(event) {
event.pageY +=18;
var self = this;
$({}).datepicker("dialog", self.innerHTML, function(data) {
$(self).html(data)
}, {
dateFormat: "dd.mm.yy"
}, event)
})
});
</script>
</head>
<body>
<table>
<tr><td class="edit payment_date 44380">11.11.2016</td></tr>
<tr><td class="edit payment_date 44381">12.11.2016</td></tr>
<tr><td class="edit payment_date 44381">13.11.2016</td></tr>
</table>
</body>
</html>
|
|
24.02.2017, 15:34
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Огромное Вам спасибо,за помощь. Запустил Ваш код, работает отлично.
Буду сегодня его под себя настраивать его.
У меня из датапикера была отправка в БД.
Подскажите пожалуйста: будет ли работать обработчик (который работал в предыдущем коде) теперь в вашем:
onSelect: function(dateText, inst) {
$.ajax({ type: "POST",
url:"test.php",
data: "value="+dateText+"&id="+arr2+"&field="+arr1+"&table="+table,
success: function(data){
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax');
},
error: function(){
alert ("Ошибка отправки новых данных. Обратитесь к администратору.");
}
});
}
интересует именно вот эта часть кода: function(dateText, inst)
|
|
24.02.2017, 15:41
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
kupidon,
да function(data) { это тоже самое , откуда вы возьмте остальные данные дело ваше.
|
|
24.02.2017, 19:27
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
что-то не получается отправить пост запрос. firefox показывает, что запроса POST вообще не происходит, даже ошибки не выдает. Переменные для передачи рабочие (arr[1],arr[2],table).
Ячейка до редактирования имеет код:
<td class="edit2 payment_date 49864">00.00.0000</td>
По клику по ячейки, всплывает календарь, выбираю дату, она записывается новым значением в ячейку, но в БД не отправляется.
Что-то опять делаю не так
$(function() {
$("td.edit2").on("click", function(event) {
arr = $(this).attr('class').split( " " );
$(this).addClass('ajax');
var table = $('.oplaty_online').attr('id');
event.pageY +=10;
var self = this;
$({}).datepicker("dialog", self.innerHTML, function(data0) {
$(self).html(data0)
}, {
dateFormat: "dd.mm.yy",
monthNames: [ "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь" ],
dayNamesMin: [ "вс", "пн", "вт", "ср", "чт", "пт", "сб" ],
firstDay: 1,
altField: "#actualDate",
onSelect: function(data0) {
$.ajax({ type: "POST",
url:"kuzzz_reportpost.php",
data: "value="+data0+"&id="+arr[2]+"&field="+arr[1]+"&table="+table,
success: function(data){
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax'); },
error: function(){
alert ("Ошибка отправки новых данных. Обратитесь к администратору."); }
}); }
}, event)
})
});
|
|
24.02.2017, 19:39
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
kupidon,
строку 16 убрать, а содержимое перенести в строку 9
|
|
24.02.2017, 19:47
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
kupidon,
???зачем нужны эти строки непонятно, может их убрать?
$(function() {
$("td.edit2").on("click", function(event) {
var arr = $(this).attr('class').split(" ");
$(this).addClass('ajax'); //???
var table = $('.oplaty_online').attr('id');
event.pageY += 10;
var self = this;
$({}).datepicker("dialog", self.innerHTML, function(data0) {
$(self).html(data0);
$.ajax({
type: "POST",
url: "kuzzz_reportpost.php",
data: "value=" + data0 + "&id=" + arr[2] + "&field=" + arr[1] + "&table=" + table,
success: function(data) {
$('.ajax').html($('.ajax input').val());//???
$('.ajax').removeClass('ajax'); //???
},
error: function() {
alert("Ошибка отправки новых данных. Обратитесь к администратору.");
}
});
}, {
dateFormat: "dd.mm.yy",
monthNames: ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"],
dayNamesMin: ["вс", "пн", "вт", "ср", "чт", "пт", "сб"],
firstDay: 1,
altField: "#actualDate"
}, event)
})
});
|
|
24.02.2017, 19:58
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
Спасибо большущее. Заработало!
$({}).datepicker("dialog", self.innerHTML, function(data0) {
$(self).html(data0),
$.ajax({ type: "POST",
url:"kuzzz_reportpost.php",
data: "value="+data0+"&id="+arr[2]+"&field="+arr[1]+"&table="+table,
success: function(data){
$('.ajax').html($('.ajax input').val());
$('.ajax').removeClass('ajax'); },
error: function(){
alert ("Ошибка отправки новых данных. Обратитесь к администратору."); }
})},
|
|
24.02.2017, 20:00
|
|
Аспирант
|
|
Регистрация: 18.03.2016
Сообщений: 69
|
|
про какие строки вы говорили?
|
|
24.02.2017, 20:03
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,120
|
|
kupidon,
строки б,7,8 у вас бесполезные, ненужные пост №8 можно убрать или заменить 7,8 на алерт(жизнь прекрасна) но вам виднее
|
|
|
|