Кеширование данных из форм

araxnid

Новичок
Кеширование данных из форм

Здравствуйте, у меня есть несколько форм, они находятся в табах, мне нужно сделать так чтобы, нажимая, кнопку дальше, у меня переключалась форма на другой таб с другой формой, и чтобы данный с той формы кешировались, а потом уже после всех форм клались в базу. как мне сделать кеширование? может есть готовые варианты на аякс с таким функционалом?
 

diamond_krnl

pure-php
при переключении тамба ajax-ом(или в iframe) сабмитить форму, a данные хранить в сессии.
 

dimagolov

Новичок
araxnid, а почему бы все табы не заключить в одну форму которую сабмитить на последнем? Переключать табы JS-ом.
Вариант 2 - каждый таб своя форма, которая при далее сабмититься на сервер, там данные с прошлых табов идут в hidden поля текущей.
 

Alexandre

PHPПенсионер
каждый таб -форма - это скрытый див
который показывается при переключении при клики на метку таба.
а сама форма (теги формы <FORM>) всего одна.
 

araxnid

Новичок
мне нужно переключать не табами, а кнопкой submit чтобы после ее нажатия преключался таб.
dimagolov, можешь подробнее про свой ервый вариант.?
 

araxnid

Новичок
я знаю что не субмит, но как переключить таб, может есть простейший пример???
 

nirex

Новичок
araxnid
т.е. у тебя это что-то типа визарда ?
сначало кнопка next для переключения табов, а потом на последней ок ?
Если так то управляющая структура не сильно отличается от переключения табов.
Изучай js.
Внутренне это куча дивов которые переключаются кнопкой next ее type=button, а на последнем диве кнопка ОК с type=submit, все это находится в таге <form> что как раз запустит механизм отправки данных.
В результате, не надо ничего кэшировать, и в полне дружественный интерфейс получится.

P.S. "Можно привентить кнопку Prev чтобы возвращаться на предыдущий див, тогда получится самый натуральный визард, который все видели и на подсознательном уровне поймут как им пользоваться"

-~{}~ 25.04.08 10:37:

Простейший пример :)

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
.win{

border: 1px #000066 solid;

width:500px;
height:400px;}
</style>
</head>
<script>
get_element = document.all ?
 function (s_id) { return document.all[s_id] } :
 function (s_id) { return document.getElementById(s_id) };
 
var defaultWin = 1;
var curWin;

function nextWin(){
	if( !curWin ) curWin = defaultWin;
	
	get_element('w' + curWin).style.display = 'none';
	tmpWin = curWin + 2;
	curWin ++;
	get_element('w' + curWin).style.display = 'block';
	if(!get_element('w' + tmpWin))
	{
		get_element('btnNext').style.display = 'none';	
		get_element('btnOk').style.display = 'inline';
	}
}
</script>
<form action="" method="get">
<div id='w1' class='win' style="display:block"><table width="100%" height="100%" border="0"><tr><td align="center"><h2>Привет 1 !</h2></td></tr></table></div>
<div id='w2' class='win' style="display:none"><table width="100%" height="100%" border="0"><tr><td align="center"><h2>Привет 2 !</h2></td></tr></table></div>
<div id='w3' class='win' style="display:none"><table width="100%" height="100%" border="0"><tr><td align="center"><h2>Привет 3 !</h2></td></tr></table></div>
<div id='w4' class='win' style="display:none"><table width="100%" height="100%" border="0"><tr><td align="center"><h2>Привет 4 !</h2></td></tr></table></div>
<div id='w5' class='win' style="display:none"><table width="100%" height="100%" border="0"><tr><td align="center"><h2>Привет 5 !</h2></td></tr></table></div>
<div id='w6' class='win' style="display:none"><table width="100%" height="100%" border="0"><tr><td align="center"><h2>Привет 6 !</h2></td></tr></table></div>
<div id='w7' class='win' style="display:none"><table width="100%" height="100%" border="0"><tr><td align="center"><h2>Привет 7 !</h2></td></tr></table></div>
<div id='control'><input id='btnNext' type="button" value='Next' onclick="nextWin()">&nbsp;<input id='btnOk' type="submit" value="send" style="display:none"></div>
</form>
<body>
</body>
</html>
 

araxnid

Новичок
но тут возникает одна сложность.
мне нужно проводить валидацию с помощью подпрограммы, как перейти на нужную вкалдку там где поле не правильно было заполненно, поэтому я и писал про несколько форм.
т.е. после каждой проводить валидацию, и переходить на след там след формы, а эти данные записывать в како-нибудь буфер.
 

nirex

Новичок
в чем сложность, контейнеры в виде дивов у тебя есть, теги форм тоже четко определены, остается только встроить в next еще одну ф-ю, которая проведет валидацию.
проделать можно так, узнаешь текущий див и бежишь по нодам встретил нужный тег, проверил что он именно тот, посмотрел его значения, сверил по шаблону, если все отлично дальше бежишь, иначе выводишь ошибку.
валидатор можно генерить динамически из пхп, вообщем не знаю над чем ты так усердно думаешь.
Схалявить хочешь ? ;)
Не выйдет! :)))))))
 
Сверху