Спустя 1 день, 5 часов, 35 минут, 18 секунд (27.06.2012 - 15:21) Александр Мутылев написал(а):
Никаких идей?

Спустя 7 минут, 35 секунд (27.06.2012 - 15:28) l@pteff написал(а):
Какие могут быть идеи, не видя кода?
Спустя 15 минут, 44 секунды (27.06.2012 - 15:44) fdr написал(а):
JS))
Спустя 16 минут, 5 секунд (27.06.2012 - 16:00) Александр Мутылев написал(а):
Вот код:
Ссылка "показать" показывает нужное сообщение. Мне нужно, чтобы при выборе другого меню показывалось это сообщение. Если нужен код меню, отпишитесь)
<body style="margin:0px;padding:0px">
<div id=dark onClick="disHidden();" style='z-index:4;display:none;position:absolute;background:#505050;width:100%;height:100%;opacity:0.5;MozOpacity:0.5;KhtmlOpacity:0.5;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50)'></div>
<div id=tablo style="position:fixed;padding:30;margin-top:35%;margin-left:35%;width:300px;border:4px solid #666666;z-index:5;background:#ffffff;display:none;">
<div id=mess><center><font style=fantasy color=#d00000><b><h1>Попередження!</h1></b><img src="/scripts/Users/html/seperate.png" width="100%" height="100%" alt=""></font><br><b><h2>Дані була змінено!</h2></b></center></div>
<div style=text-align:center; padding-top:20px><input type="submit" name="save" value="Зберегти" onClick="#" style="cursor:pointer"/><margin-top:1.4em><input type="submit" name="off" value="Відміна" onClick="disHidden()" style="cursor:pointer"/><br/><br/></div>
</div>
<div align=center><a onClick="javascript:geta()" style='cursor:pointer'>Показати</a></div>
<script>
function geta(){
document.getElementById('dark').style.height=document.body.scrollHeight;
document.getElementById('tablo').style.display='';
document.getElementById('dark').style.display='';
}
function disHidden(){
document.getElementById('tablo').style.display='none';
document.getElementById('dark').style.display='none';
}
</script>
<? defined('TRUST') or die(); ?>
<script type="text/javascript">
$(function() {
$("#userform").validationEngine();
$('#birthday').datepicker({
dateFormat: 'yy-mm-dd',
changeMonth: true,
changeYear: true,
yearRange: '<? echo (date('Y') - 50) . ':' . (date('Y') - 13); ?>'
});
$('#birthday').datepicker("setDate", '<? echo date('Y-m-d', $$class->data_u['birthday']); ?>');
});
$(function() {
var readonlys = $('.classrow input[readonly]');
var parent = readonlys.parent();
$(parent).addClass('dis');
$(readonlys).addClass('dis');
$('input.dis').val(0);
var sum_dis_parent = $('input.sum_dis').parent();
$(sum_dis_parent).addClass('dis');
NumberOfColumns = $('input.sum_dis').size();
$('.colspan6').attr("colspan",6-NumberOfColumns);
$('.colspan3').attr("colspan",3-(NumberOfColumns/2));
$("#schoolform").validationEngine({scroll:true});
$('.classrow input').change(function(event){
var sum_class = $(this).attr("class").charAt(0);
var total = parseInt('0',10);
var totalNumber = parseInt('0',10);
$('input.'+sum_class).each(function() {total = total+(parseInt(this.value,10));});
$('#sum_'+sum_class).val(total);
$('input.total').each(function() { totalNumber = totalNumber+(parseInt(this.value)); });
for_pay = parseInt($('#sum_a').val()) + parseInt($('#sum_b').val()) + parseInt($('#sum_c').val());
if(for_pay > 100){
koef = <? echo $$class->options['ratio_0']; ?>
}else if(for_pay > 50){
koef = <? echo $$class->options['ratio_1']; ?>
}else if(for_pay > 10){
koef = <? echo $$class->options['ratio_2']; ?>
} else{
koef = <? echo $$class->options['ratio_3']; ?>
}
//$('#debt').val(((for_pay*koef).toFixed(2)));
$('#debt').val((for_pay*koef).toFixed(2));
$('#debt2').val((for_pay*koef-for_pay*<?echo $$class->formula_2($auth->id);?>).toFixed(2));
$('#total_number').val(totalNumber);
});
/////////////////////////////////////////////////////////////////////////
$( "#city" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "<? echo $route->site_url; ?>scripts/Users/ajax/fetch_cities.php",
dataType: "json",
data: {regionid: $('#regions').val(),query: request.term},
success: function( data ) {response( data ); }
});
},
minLength: 2,
select: function( event, ui ) {$('#city_id').val(ui.item.id);
jQuery.post("<? echo $route->site_url; ?>scripts/Users/ajax/fetch_districts.php", { id: ui.item.id }, function(data) {
if(data) $("div.district_div").html('<div>Район міста: </div>'+data);
});
}
});
/////////////////////////////////////////////////////////////////////////
});
function fetch_areas(dom_el){
jQuery.post("<? echo $route->site_url; ?>scripts/Users/ajax/fetch_areas.php", { id: $(dom_el).val() }, function(data) {
$("div.area_div").html('<div>Район області/м. обл. знач.: </div>'+data);
});
}
function nextEl(element)
{
var sum_class = $(element).attr('id');
sum_class = sum_class.charAt(0)+
(parseInt(sum_class.charAt(1)+sum_class.charAt(2),10)+1);
$('#'+sum_class).focus();
}
</script>
<?if ($$class->block_edit == 1)
echo '<h2>Увага! Зміна персональних даних тимчасово заблокована адміністратором!</h2>';?>
<form action="users/index.html" method="post" id="userform">
<div class="formline">
<div>Прізвище, ім`я, по батькові:</div>
<script type="text/javascript">
function myCheckValue()
{
var i = document.getElementById("real_name");
if (i.value != "<? echo htmlspecialchars($$class->data_u['real_name']); ?>")
alert("Text was changed!");
}
</script>
<input type="text" name="real_name" id="real_name" maxlength="255" value="<? echo htmlspecialchars($$class->data_u['real_name']); ?>" class="textinput validate[required]" onKeyUp="myCheckValue()" />
</div>
<div class="formline">
<div>Місце роботи:</div>
<input type="text" name="workplace" id="workplace" value="<? echo htmlspecialchars($$class->data_u['workplace']); ?>" class="textinput validate[required]" />
</div>
<div class="formline">
<div>Посада:</div>
<input type="text" name="position" id="position" value="<? echo htmlspecialchars($$class->data_u['position']); ?>" class="textinput validate[required]" />
</div>
<? if($auth->status==0 ) { ?>
<div class="formline">
<div>Області:</div>
<? if (count($$class->user_regions)>0) { ?>
<? foreach ($$class->user_regions as $key => $val) {
$$class->user_regions[$key] = $$class->regions_u[$val];
}
echo '<div style="text-align: left;">'.join('<br>', $$class->user_regions).'</div>';
?>
<? } else { ?>
не визначенi
<? } ?>
</div>
<?}?>
<div class="formline">
<div>Робочий телефон:</div>
<input type="text" name="phone_u" id="phone_u" value="<? echo $$class->data_u['phone']; ?>" class="textinput" />
</div>
<div class="formline">
<div>Мобільний телефон:</div>
<input type="text" name="mobile_phone" id="mobile_phone" value="<? echo $$class->data_u['mobile_phone']; ?>" class="textinput" />
</div>
<div class="formline">
<div>Електронна адреса:</div>
<input type="text" name="email_u" id="email_u" value="<? echo htmlspecialchars($$class->data_u['email']); ?>" class="textinput" />
</div>
<? if($auth->status==2 ) { ?>
<div class="formline">
<div>Область: </div>
<?
if (isset($$class->user_area)) {
echo '<div style="text-align: left;">'. $$class->regions[$$class->user_area['region']].'</div>';
}?>
</div>
<div class="formline">
<div>Район області/м. обл. знач.: </div>
<? if (isset($$class->user_area)) {
echo '<div style="text-align: left;">'. $$class->user_area['name'].'</div>';
?>
<? } else { ?>
не визначений
<? }?>
</div>
<?}?>
<?if(($auth->status==2)||($auth->status == 0) ) {?>
<input type="hidden" name="city_id" id="city_id" value="<? echo $$class->address['city']; ?>" />
<div class="formline">
<div>Адреса:</div>
<input type="text" name="address" id="address" value="<? echo htmlspecialchars($$class->address['address']); ?>" class="textinput validate[required]" />
</div>
<div class="formline">
<div>Індекс:</div>
<input type="text" name="index" id="index" value="<? echo $$class->address['index']; ?>" class="textinput validate[required,length[5,5],custom[onlyNumber]]" />
</div>
<?}?>
<?if($auth->status==1 || $auth->status==3){
if($auth->status==1){?>
<div><h2>Дані навчального закладу</h2></div>
<?}else{?>
<div><h2>Дані об'єднання шкіл</h2></div>
<?}?>
<div class="formline">
<div>Повна назва:</div>
<input type="text" maxlength="255" name="fullname" id="fullname" value="<?echo htmlspecialchars($$class->data['fullname']); ?>" class="textinput validate[required]" />
</div>
<div class="formline">
<div>Скорочена назва:</div>
<input type="text" maxlength="255" name="shortname" id="shortname" value="<? echo htmlspecialchars($$class->data['shortname']); ?>" class="textinput validate[required]" />
</div>
<?if($auth->status == 3){?>
<div class="formline">
<div>Кількість шкіл:</div>
<input type="text" maxlength="255" name="numschools" id="numschools" class="validate[required] validate[custom[onlyNumber]]" value="<? if($$class->data['pupil_table']['numschools']>0)echo $$class->data['pupil_table']['numschools']; ?>"/>
</div>
<?}?>
<?if(($auth->status==1)||($auth->status==3)){?>
<div class="formline region_div">
<div>Область:</div>
<input type="text" name="regions" id="regions" class="textinput" value="<? echo $$class->regions[$$class->data['region']]; ?>" readonly />
</div>
<div class="formline area_div">
<div>Район обл. / місто обл. знач.: </div>
<input type="text" name="area" id="area" class="textinput" value="<?$region_areas = $$class->fetch_region_areas($$class->data['region']); echo $region_areas[$$class->data['area']]; ?>" readonly />
</div>
<?if ($$class->data_u['isNotCity'] != 1 ){?>
<div class="formline city_div">
<div>Населений пункт:</div>
<input type="text" name="city" id="city" value="<? echo htmlspecialchars($$class->data['city_name']); ?>" class="textinput" readonly />
</div>
<?}?>
<div class="formline district_div">
<?
$region_areas = $$class->fetch_city_districts($$class->data['area']);
if (count($region_areas)> 0&&$$class->data['city'] == 0) {
$region_areas[0] = 'Виберіть район міста!';
asort($region_areas);
echo '<div>Район міста: </div>';
echo Html::build_select($region_areas, $$class->data['district'], 'district', 'district');
} ?>
</div>
<?}?>
<div class="formline">
<div>Адреса:</div>
<input type="text" name="address" id="address" value="<? echo htmlspecialchars($$class->data['address']); ?>" class="textinput validate[required]" />
</div>
<div class="formline">
<div>Індекс:</div>
<input type="text" name="index" id="index" value="<? echo $$class->data['index']; ?>" class="textinput validate[required,length[5,5],custom[onlyNumber]]" />
</div>
<div class="formline">
<div>Телефон:</div>
<input type="text" name="phone" id="phone" value="<? echo $$class->data['phone']; ?>" class="textinput validate[required,custom[ukrtelephone]]" />
</div>
<div class="formline">
<div>E-mail:</div>
<input type="text" name="email" id="email" value="<? echo htmlspecialchars($$class->data['email']); ?>" class="textinput" />
</div>
<div class="formline">
<div>Код <? if ($auth->status == 3) echo 'об\'єднання'; else echo 'навчального закладу';?>:</div>
<input type="text" name="code" id="code" value="<? echo $$class->data['code']; ?>" class="textinput" readonly />
</div>
<p id="amounterror"> </p>
<table id="pupils" width="100%" cellpadding="0" cellspacing="0" bgcolor="white">
<tr><th rowspan="3">Клас</th><th colspan="6" class="colspan6">Кількість учасників</th></tr>
<tr>
<th rowspan="2" <? if ($$class->options['lang_ukr'] == 0 )echo' class="dis"'; ?>>укр.</th>
<th rowspan="2" <? if ($$class->options['lang_rus'] == 0 )echo' class="dis"'; ?>>рос.</th>
<th rowspan="2" <? if ($$class->options['lang_eng'] == 0 )echo' class="dis"'; ?>>англ.</th>
<th colspan="3" class="colspan3">Крім того дітей-сиріт</th>
</tr>
<tr>
<th <? if ($$class->options['lang_ukr'] == 0 )echo' class="dis"'; ?>>укр.</th>
<th <? if ($$class->options['lang_rus'] == 0 )echo' class="dis"'; ?>>рос.</th>
<th <? if ($$class->options['lang_eng'] == 0 )echo' class="dis"'; ?>>англ.</th>
</tr>
<? for ($i = 1; $i < 12; $i++) {
?>
<tr id="classrow<? echo $i; ?>" class="classrow<? if ($$class->options['class_' . $i] == 0 )echo' dis'; ?>">
<td <? if ($$class->options['class_' . $i] == 0 )echo' class="dis"'; ?>><?= $i ?></td>
<td><input id="a<? echo $i; ?>" type="text" value="<? echo 0 + $$class->data['pupil_table'][a . $i]; ?>" class="a num validate[custom[onlyNumber]]" name="a<? echo $i; ?>" <? if ($$class->options['lang_ukr'] == 0 || $$class->options['class_' . $i] == 0 )echo' readonly'; ?> onFocus="this.select()" onKeyPress="if(event.keyCode == 13){nextEl(this);}"/></td>
<td><input id="b<? echo $i; ?>" type="text" value="<? echo 0 + $$class->data['pupil_table'][b . $i]; ?>" class="b num validate[custom[onlyNumber]]" name="b<? echo $i; ?>" <? if ($$class->options['lang_rus'] == 0 || $$class->options['class_' . $i] == 0 )echo' readonly'; ?> onFocus="this.select()" onKeyPress="if(event.keyCode == 13){nextEl(this);}"/></td>
<td><input id="c<? echo $i; ?>" type="text" value="<? echo 0 + $$class->data['pupil_table'][c . $i]; ?>" class="c num validate[custom[onlyNumber]]" name="c<? echo $i; ?>" <? if ($$class->options['lang_eng'] == 0 || $$class->options['class_' . $i] == 0 )echo' readonly'; ?> onFocus="this.select()" onKeyPress="if(event.keyCode == 13){nextEl(this);}"/></td>
<td><input id="d<? echo $i; ?>" type="text" value="<? echo 0 + $$class->data['pupil_table'][d . $i]; ?>" class="d num validate[custom[onlyNumber]]" name="d<? echo $i; ?>" <? if ($$class->options['lang_ukr'] == 0 || $$class->options['class_' . $i] == 0 )echo' readonly'; ?> onFocus="this.select()" onKeyPress="if(event.keyCode == 13){nextEl(this);}"/></td>
<td><input id="e<? echo $i; ?>" type="text" value="<? echo 0 + $$class->data['pupil_table'][e . $i]; ?>" class="e num validate[custom[onlyNumber]]" name="e<? echo $i; ?>" <? if ($$class->options['lang_rus'] == 0 || $$class->options['class_' . $i] == 0 )echo' readonly'; ?> onFocus="this.select()" onKeyPress="if(event.keyCode == 13){nextEl(this);}"/></td>
<td><input id="f<? echo $i; ?>" type="text" value="<? echo 0 + $$class->data['pupil_table'][f . $i]; ?>" class="f num validate[custom[onlyNumber]]" name="f<? echo $i; ?>" <? if ($$class->options['lang_eng'] == 0 || $$class->options['class_' . $i] == 0 )echo' readonly'; ?> onFocus="this.select()" onKeyPress="if(event.keyCode == 13){nextEl(this);}"/></td>
</tr>
<? } ?>
<tr id="pupil_sum">
<td>Усього</td>
<td class="sizer"><input type="text" name="sum_a" class="total<? if ($$class->options['lang_ukr'] == 0 )echo' dis sum_dis'; ?>" id="sum_a" value="<? echo 0 + $$class->data['pupil_table']['sum_a']; ?>" readonly /></td>
<td class="sizer"><input type="text" name="sum_b" class="total<? if ($$class->options['lang_rus'] == 0 )echo' dis sum_dis'; ?>" id="sum_b" value="<? echo 0 + $$class->data['pupil_table']['sum_b']; ?>" readonly /></td>
<td class="sizer"><input type="text" name="sum_c" class="total<? if ($$class->options['lang_eng'] == 0 )echo' dis sum_dis'; ?>" id="sum_c" value="<? echo 0 + $$class->data['pupil_table']['sum_c']; ?>" readonly /></td>
<td class="sizer"><input type="text" name="sum_d" class="total<? if ($$class->options['lang_ukr'] == 0 )echo' dis sum_dis'; ?>" id="sum_d" value="<? echo 0 + $$class->data['pupil_table']['sum_d']; ?>" readonly /></td>
<td class="sizer"><input type="text" name="sum_e" class="total<? if ($$class->options['lang_rus'] == 0 )echo' dis sum_dis'; ?>" id="sum_e" value="<? echo 0 + $$class->data['pupil_table']['sum_e']; ?>" readonly /></td>
<td class="sizer"><input type="text" name="sum_f" class="total<? if ($$class->options['lang_eng'] == 0 )echo' dis sum_dis'; ?>" id="sum_f" value="<? echo 0 + $$class->data['pupil_table']['sum_f']; ?>" readonly /></td>
</tr>
</table>
<div class="totals">
<p>Усього учасників: <input name="total_pupils" id="total_number" value="<? echo 0+$$class->data['total_pupils']; ?>" readonly /></p>
<p>Сума організаційного внеску <? if ($auth->status == 3) echo 'об\'єднання'; else echo 'навчального закладу';?> (грн.):
<input name="debt" id="debt" value="<? printf("%.2f",$$class->data['debt']); ?>" readonly /></p>
<p>Кошти, що повинні бути сплачені <?
if ($auth->status == 3)
echo 'об\'єднанням ';
else
echo 'навчальним закладом ';
global $db;
$pe = $db->selectCell('select payments_reciver from ?_geo_regions where id = ?',$$class->data['region']);
switch($pe)
{
case 0:
default:
echo '';
break;
case 2:
echo 'орг. комітету';
break;
case 1:
echo ' регіональному представнику';
break;
case 3:
echo 'методисту';
break;
} ?> (грн.):
<input name="debt2" id="debt2" value="<?
printf("%.2f",$$class->data['debt2']);?>" readonly /></p>
</div>
<input type="hidden" name="city_id" id="city_id" value="<? echo $$class->data['city'];?>" />
<input type ="hidden" name= "user" id="user" value = <?echo $$class->data['user'];?>>
<?}?>
<?
if ($$class->block_edit == 0)
echo Html::form_submiter('userform','','Зберегти');
else
echo '<h2>Увага! Зміна персональних даних тимчасово заблокована адміністратором!</h2>';
?>
</form>
Ссылка "показать" показывает нужное сообщение. Мне нужно, чтобы при выборе другого меню показывалось это сообщение. Если нужен код меню, отпишитесь)
Спустя 44 минуты, 14 секунд (27.06.2012 - 16:44) Guest написал(а):
ух ё. Зачем весь то кинул? Только проблемный кусок
Делается это 2мя способами. Вероятно оба и надо будет применить
когда юзер покидает поле - вызывать ф-ю проверки(джаваскриптом или аяксом)
Ели проверка занятости имени или емейла - тут аякс, а проверка количества и прочее - JS
Делается это 2мя способами. Вероятно оба и надо будет применить
когда юзер покидает поле - вызывать ф-ю проверки(джаваскриптом или аяксом)
Ели проверка занятости имени или емейла - тут аякс, а проверка количества и прочее - JS
Спустя 5 минут, 30 секунд (27.06.2012 - 16:50) Александр Мутылев написал(а):
Цитата (Guest @ 27.06.2012 - 13:44) |
ух ё. Зачем весь то кинул? Только проблемный кусок Делается это 2мя способами. Вероятно оба и надо будет применить когда юзер покидает поле - вызывать ф-ю проверки(джаваскриптом или аяксом) Ели проверка занятости имени или емейла - тут аякс, а проверка количества и прочее - JS |
Дак там же уйма полей. У меня тогда сообщение будет выскакивать после каждого перехода. Я так пробовал)). Мне нужно, чтобы при выборе другого меню выскакивало это сообщение, если что-то было изменено. Да и проверка - не важно. я как-то сделаю. Скажите, как обратится к это проверке при переходе. Пожалуйста)
Спустя 4 минуты, 50 секунд (27.06.2012 - 16:55) Guest написал(а):
onfocusout
Спустя 2 минуты, 59 секунд (27.06.2012 - 16:58) Александр Мутылев написал(а):
Цитата (Guest @ 27.06.2012 - 13:55) |
onfocusout |
Не то(
Спустя 4 минуты, 56 секунд (27.06.2012 - 17:02) Guest написал(а):
ммм
Это общее понятие потери фокуса
Для мышки - это онмаусовер
для клавы(табом) - это делается на следующее поле проверка предыдущего(с этим на самом деле геммор) и все эти правила между собой надо соеденить, что бы что-то отработало
Так же можно по "кейдоун" ловить, но тут юрез мог не закончить а уже проверка прошла
или как вариант по кейдауну делать задержку в 3 сек после чего запускать ф-ю. Как только ещё раз нажал в этом поле - по новой запускать задержку(это более сложно)

Для мышки - это онмаусовер
для клавы(табом) - это делается на следующее поле проверка предыдущего(с этим на самом деле геммор) и все эти правила между собой надо соеденить, что бы что-то отработало
Так же можно по "кейдоун" ловить, но тут юрез мог не закончить а уже проверка прошла
или как вариант по кейдауну делать задержку в 3 сек после чего запускать ф-ю. Как только ещё раз нажал в этом поле - по новой запускать задержку(это более сложно)
Спустя 26 минут, 4 секунды (27.06.2012 - 17:29) Александр Мутылев написал(а):
Цитата (Guest @ 27.06.2012 - 14:02) |
ммм ![]() Для мышки - это онмаусовер для клавы(табом) - это делается на следующее поле проверка предыдущего(с этим на самом деле геммор) и все эти правила между собой надо соеденить, что бы что-то отработало Так же можно по "кейдоун" ловить, но тут юрез мог не закончить а уже проверка прошла или как вариант по кейдауну делать задержку в 3 сек после чего запускать ф-ю. Как только ещё раз нажал в этом поле - по новой запускать задержку(это более сложно) |
брбрбрбр)))

Спустя 2 часа, 52 минуты, 45 секунд (27.06.2012 - 20:21) vital написал(а):
Раздел форума php+sql =\
Спустя 1 час, 30 минут, 13 секунд (27.06.2012 - 21:51) Invis1ble написал(а):
! |
Invis1ble |
Спустя 11 часов, 4 минуты, 31 секунда (28.06.2012 - 08:56) ApuktaChehov написал(а):
Александр Мутылев - когда страница сформировалась, запускаете скрипт JS, который создаст объект в памяти, который отразит ваши поля и их значения.
После этого вы будете иметь сохраненную копию состояния всех полей до того, как юзер мог их изменить.
Теперь, если вы собираетесь уходить с этой страницы запускаете скрипт, который сверяет новое состояние полей с тем, что хранится в памяти. При обнаружении отличий - выдавать сообщение.
Вот и все. Если полей совсем много, тяжеловато получится, но думаю браузер справится =)
После этого вы будете иметь сохраненную копию состояния всех полей до того, как юзер мог их изменить.
Теперь, если вы собираетесь уходить с этой страницы запускаете скрипт, который сверяет новое состояние полей с тем, что хранится в памяти. При обнаружении отличий - выдавать сообщение.
Вот и все. Если полей совсем много, тяжеловато получится, но думаю браузер справится =)