Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.02.2017, 08:50
Аватар для kupidon
Аспирант
Отправить личное сообщение для kupidon Посмотреть профиль Найти все сообщения от kupidon
 
Регистрация: 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 секунд. Что интересно - вчера работало все на отлично (по первому щелчку делался инпут, по второму открывался календарь сразу), но я что то сделал и начало тупить. Пол ночи не спал, пытался разобраться. Помогите пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2017, 10:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

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>
Ответить с цитированием
  #3 (permalink)  
Старый 24.02.2017, 15:34
Аватар для kupidon
Аспирант
Отправить личное сообщение для kupidon Посмотреть профиль Найти все сообщения от kupidon
 
Регистрация: 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)
Ответить с цитированием
  #4 (permalink)  
Старый 24.02.2017, 15:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

kupidon,
да function(data) { это тоже самое , откуда вы возьмте остальные данные дело ваше.
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2017, 19:27
Аватар для kupidon
Аспирант
Отправить личное сообщение для kupidon Посмотреть профиль Найти все сообщения от kupidon
 
Регистрация: 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)
    })
});
Ответить с цитированием
  #6 (permalink)  
Старый 24.02.2017, 19:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

kupidon,
строку 16 убрать, а содержимое перенести в строку 9
Ответить с цитированием
  #7 (permalink)  
Старый 24.02.2017, 19:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

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)
    })
});
Ответить с цитированием
  #8 (permalink)  
Старый 24.02.2017, 19:58
Аватар для kupidon
Аспирант
Отправить личное сообщение для kupidon Посмотреть профиль Найти все сообщения от kupidon
 
Регистрация: 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 ("Ошибка отправки новых данных. Обратитесь к администратору.");	}
				       })},
Ответить с цитированием
  #9 (permalink)  
Старый 24.02.2017, 20:00
Аватар для kupidon
Аспирант
Отправить личное сообщение для kupidon Посмотреть профиль Найти все сообщения от kupidon
 
Регистрация: 18.03.2016
Сообщений: 69

про какие строки вы говорили?
Ответить с цитированием
  #10 (permalink)  
Старый 24.02.2017, 20:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

kupidon,
строки б,7,8 у вас бесполезные, ненужные пост №8 можно убрать или заменить 7,8 на алерт(жизнь прекрасна) но вам виднее
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать onclick на ячейках таблицы krokusandr Events/DOM/Window 15 12.04.2019 05:30
Вывод из таблицы в БД c помощью AJAX smart-create AJAX и COMET 4 29.12.2016 20:44
почему не обрабатываются события в динамически добавленых строках таблицы boris2000 Events/DOM/Window 2 10.11.2016 14:04
Динамическое изменение background-a в ячейках таблицы Gh0stik Events/DOM/Window 15 02.08.2012 19:40