Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.02.2014, 16:55
Новичок на форуме
Отправить личное сообщение для Sema Посмотреть профиль Найти все сообщения от Sema
 
Регистрация: 25.12.2013
Сообщений: 2

Динамическое обновление таблицы
Доброго времени суток. Столкнулся с такой проблемой. У меня есть реализована модель CRUD и все замечательно работает. Решил усовершенствовать ее чтоб все действия происходили без перезагрузки страницы. С первым этапом справился а именно с добавлением.Тобиш есть таблица юзеров и кнопка "creat new user", открывается диалоговое окно вносятся все данные и сохраняются в БД без перезагрузки. И тут у меня начался ступор. после добавления нужно обновить таблицу с юзерами также аяксом. а как? может кто подскажет.. вот кидаю код...

/*Init form submit events*/
	function initDialogEvents($container){
		var $form = $container.find("form");
		//var $submitButton = $form.find(".submit_button");
		
		$form.on("submit", function(e, data){
				e.preventDefault();
				
				$.ajax({
                    url:      $form.attr('action'), //Адрес подгружаемой страницы
                    type:     "POST", //Тип запроса
                    dataType: "json", //Тип данных
                    data: $form.serialize(), 
                    success: function(data) { //Если все нормально
						console.info(data);
                    	//$container.html(response);
						//initDialogEvents($container);
						$container.dialog("close");											
						addUserToTable(data);
						
                	},
               		error: function(response) { //Если ошибка
               			$container.append("fuckin' shit. JSON has wrong format");
                	}
				});
				//return false;//
		});		
	}
	
	function addUserToTable(data){
		var $usersTable = $("#users tbody");
		var $row = $("tr#user-" + data.id);
		
				
		if (!$row.length){ // if it's a new user - tr is not created yet
			$row = $("<tr/>").attr("id", data.id);	//let's create new one
			
		}
		
		
		$row.append($("<td/>").text(data.name))
		    .append($("<td/>").text(data.lastname))
			.append($("<td/>").text(data.email))
			.append($("<td/>").text(data.age))
			.append($("<td/>").text(data.male))
			.append($("<td/>").text(data.city))
			.append($("<td/>"));
		

	   $usersTable.append($row);
       
				
	}
	

		
});

Последний раз редактировалось Sema, 03.02.2014 в 17:15.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2014, 13:51
Аватар для Cuntmann
Аспирант
Отправить личное сообщение для Cuntmann Посмотреть профиль Найти все сообщения от Cuntmann
 
Регистрация: 26.01.2014
Сообщений: 78

index.htm

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>XZ</title>
<style>
body{color:#000;background-color:#fff;font-family:Georgia,'Bookman Old Style',Verdana;font-size:14px;text-align:center;padding-top:50px;}
input{cursor:pointer;text-align:center;margin-left:10px;margin-right:10px;}
table{margin-top:15px;}
th,td{border:2px outset #fff;}
</style>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).ready(function(){
$('#send').click(function(){
var frm=$('#myform'),
    whereTo=frm.attr('action'),
	params=frm.serialize(),
	tab=$('#users tbody');
$.post(whereTo,params,function(data){
var resp=data.split(','),
    info=[];
for(var k=0; k < resp.length; k++){
var temp=resp[k].split('=');
info.push(temp[1]);
}
tab.append('<tr id="user_'+info[0]+'"></tr>');
for(var i=1; i < info.length; i++){
tab.find('tr:last').append('<td>'+info[i]+'</td>');
}
})
});
});
</script>
</head>
<body>
<div id="upl">
<form id="myform" action="serverscript.php">
<input type="text" id="name" name="name" placeholder="name" />
<input type="text" id="lastname" name="lastname" placeholder="lastname" />
<input type="text" id="email" name="email" placeholder="email" />
<input type="text" id="age" name="age" placeholder="age" />
<input type="text" id="gender" name="gender" placeholder="gender" />
<input type="text" id="city" name="city" placeholder="city" /><br /><br />
<input type="button" id="send" value="Отправить" /><input type="reset" value="Очистить" />
</form>
</div>
<table id="users" align="center" cellpadding="5" cellspacing="10" border="1">
<tbody>
<tr><th>Имя</th><th>Фамилия</th><th>Мыло</th><th>Возраст</th><th>Пол</th><th>Город</th></tr>
</tbody>
</table>
<div id="res"></div>
</body>
</html>


serverscript.php

<?php
/* все от балды, просто демо */
$output='id='.rand(1,1000).',';
foreach($_POST as $key=>$val){$output.=$key.'='.$val.',';}
echo substr($output,0,-1);
?>
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2014, 18:54
Новичок на форуме
Отправить личное сообщение для Sema Посмотреть профиль Найти все сообщения от Sema
 
Регистрация: 25.12.2013
Сообщений: 2

Спасибо что натолкнули на мысль..
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое обновление таблицы БД X-man AJAX и COMET 8 03.10.2013 12:14
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
load и динамическое обновление страницы IONEX AJAX и COMET 12 08.07.2012 20:57
динамическое обновление таблицы Алексашка AJAX и COMET 1 04.03.2010 12:53
ДИнамическое изминение таблицы Legi Элементы интерфейса 1 08.02.2009 04:10