И вот тут, один из потенциальных работодателей выдал тестовое задание:
"разобраться, как работает форма обратной связи в файле ... html, и, по образу и подобию, создать файл ....html с произвольными полями. При необходимости внести изменения в соответствующие файлы.
Возможен и такой формат: объяснить, необходимы ли изменения и если да, то какие и в каких файлах."
Было сказано, что это примерно то, с чем вам (т.е. мне) придётся работать в основном.
Ниже только фрагмент - дальше "лучше"...
причём само это приложение, (если можно так назвать) не работает

Я привожу часть кода на JS, но там были ещё и php файлы.
И вот прошу - скажите может это я такой тупой и мне стоит сидеть на прежнем месте работы, или всё таки код плохо читаем. - я разобраться в коде так и не смог.
Ребята. Напишите кто что думает о разборках в "чужом" коде.
PS
Задание, как они сказали написал единственный их php-ник, который увольняется.
Вот фрагмент кода на JS (используется JQ):
if (err!=null) return;
my_reg = document.getElementById("region");
jQuery.post('/sender.php?cmd=reg_dealer',
{'fullorg': encodeURIComponent($('#fullorg').val()),
'region': encodeURIComponent(my_reg.options[my_reg.selectedIndex].value),
'fullname': encodeURIComponent($('#fullname').val()),
'position': encodeURIComponent($('#position').val()),
'email': escape($('#email').val()),
'phone': encodeURIComponent($('#phone').val())
}, function(data){
//alert(data);
if(!data) location.href='/join/dealer/registered/';
else if(data=="invalid") {
$("div#reg_d_form span").hide();
$('#email').focus();
$('p#err_email').append('<span class="err_info" style="color:#b00;display:block;">Пожалуйста, введите правильный e-mail адрес</span>');
}
});
}
/**/
var reg_prov_Submit_Req= { // validate in reverse for focus order as onscreen...
opt7:false,
opt6:false,
opt5:false,
opt4:false,
opt3:false,
opt2:false,
opt1:false,
phone:true,
email:true,
position:true,
fullname:true,
howold:true,
average:true,
amountuser:true,
oborot:true,
region:false,
fullorg:true
};
function reg_prov_submit(){
var VarEmail = gebi('email').value; //for detailed e-mail address check
var err;
for (var j in reg_prov_Submit_Req) {
$('#' + j).val($.trim($('#' + j).val()));
$('#' + j + 'err').remove();
if (reg_prov_Submit_Req[j] && $('#' + j).val() == "") {
err = j;
}
}
if (err!=null) {
$('#' + err).focus();
if(err=='fullname') {
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_fullname" style="color:#b00;display:block;">Пожалуйста, в..... лию</span>');
}
if(err=='email'){
$("div#reg_prov_form span").hide();
gebi('if_emal_fail').style.display='block';
}
if(err=='fullorg'){
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_fullorg" style="color:#b00;display:block;">Пожалуйста, введите полное название Вашей организации</span>');
}
if(err=='position'){
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_position" style="color:#b00;display:block;">Пожал..... ость</span>');
}
if(err=='phone'){
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_phone" style="color:#b00;display:block;">Пожалуйста, вв.... фон</span>');
}
if(err=='oborot'){
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_oborot" style="color:#b00;display:block;">Пожалуйста, введите Ваш оборот за месяц</span>');
}
if(err=='amountuser'){
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_amountuser" style="color:#b00;display:block;">Пожалуйста, вв.... ентов</span>');
}
if(err=='average'){
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_average" style="color:#b00;display:block;">Пожалуйста, вве.... жа</span>');
}
if(err=='howold'){
$("div#reg_prov_form span").hide();
$('p#err_'+err).append('<span class="err_howold" style="color:#b00;display:block;">Сколько ко.... ынке</span>');
}
}
if (err!=null) return;
if (!/^[a-z0-9_\-\.]+?@[a-z0-9_\-\.]+?\.[a-z]{2,4}$/i.test(VarEmail))
{
$("div#reg_prov_form span").hide();
gebi('if_emal_fail_det').style.display='block';
return;
}
$("div#reg_prov_form span").hide();
gebi('EFcontainer').innerHTML = '<table class="EFbutton" style="width:7.2em" cellspacing="0" cellpadding="0"><tr><td>Отправить<\/td><\/tr><\/table>';
gebi('EFcontainer').className = 'submit_button_disabled';
//check jQuery support
gebi('reg_prov_form').style.position = 'static';
$("div#reg_prov_form").css('position','relative');
if (gebi('reg_prov_form').style.position == 'relative') {} else {alert('Ваш браузер не поддерживает JavaScript в полной мере. Требуеться: Intenet Explorer v6.0 и выше; FireFox v2.0 и выше; Opera v9.25 и выше; Safari v2.0 и выше.');return;}
//end check jQuery support
$("input[@type=checkbox][@checked]").val('on');
my_reg = document.getElementById("region");
jQuery.post('/sender.php?cmd=reg_prov',
{'fullorg': encodeURIComponent($('#fullorg').val()),
'region': encodeURIComponent(my_reg.options[my_reg.selectedIndex].value),
'fullname': encodeURIComponent($('#fullname').val()),
'position': encodeURIComponent($('#position').val()),
'email': escape($('#email').val()),
'phone': encodeURIComponent($('#phone').val()),
'opt1': $('#opt1').val(),
'opt2': $('#opt2').val(),
'opt3': $('#opt3').val(),
'opt4': $('#opt4').val(),
'opt5': $('#opt5').val(),
'opt6': $('#opt6').val(),
'opt7': encodeURIComponent($('#opt7').val()),
'oborot': encodeURIComponent($('#oborot').val()),
'amountuser': encodeURIComponent($('#amountuser').val()),
'average': encodeURIComponent($('#average').val()),
'howold': encodeURIComponent($('#howold').val())
}, function(data){location.href='/join/provider/registered/';});
}
var reg_rep_Submit_Req= { // validate in reverse for focus order as onscreen...
workarea:true,
phone:true,
email:true,
position:true,
fullname:true,
region:false,
fullorg:true
};
function reg_rep_submit()
{
var VarEmail = gebi('email').value; //for detailed e-mail address check
var err;
for (var j in reg_rep_Submit_Req) {
$('#' + j).val($.trim($('#' + j).val()));
$('#' + j + 'err').remove();
if (reg_rep_Submit_Req[j] && $('#' + j).val() == "") {
err = j;
//$('#' + j).prev().append('<font id=' + j + 'err' + ' color=red>*</font>');
}
}
if (err!=null) {
$('#' + err).focus();
if(err=='fullname') {
$("div#reg_rep_form span").hide();
$('p#err_'+err).append('<span class="err_fullname" style="color:#b00;display:block;">Пожалуйста, введите .....лию</span>');
}
if(err=='email'){
$("div#reg_rep_form span").hide();
gebi('if_emal_fail').style.display='block';
}
if(err=='fullorg'){
$("div#reg_rep_form span").hide();
$('p#err_'+err).append('<span class="err_fullorg" style="color:#b00;display:block;">Пожалуйста, введите полное название Вашей организации</span>');
}
if(err=='workarea'){
$("div#reg_rep_form span").hide();
$('p#err_'+err).append('<span class="err_workarea" style="color:#b00;display:block;">Пожалуйста, введите ...... сти</span>');
}
if(err=='position'){
$("div#reg_rep_form span").hide();
$('p#err_'+err).append('<span class="err_position" style="color:#b00;display:block;">Пожалуйста, введите......</span>');
}
if(err=='phone'){
$("div#reg_rep_form span").hide();
$('p#err_'+err).append('<span class="err_phone" style="color:#b00;display:block;">Пожалуйста, введите .......</span>');
}
}
if (err!=null) return;
if (!/^[a-z0-9_\-\.]+?@[a-z0-9_\-\.]+?\.[a-z]{2,4}$/i.test(VarEmail))
{
$("div#reg_rep_form span").hide();
gebi('if_emal_fail_det').style.display='block';
return;
}
$("div#reg_rep_form span").hide();
gebi('EFcontainer').innerHTML = '<table class="EFbutton" style="width:7.2em" cellspacing="0" cellpadding="0"><tr><td>Отправить<\/td><\/tr><\/table>';
gebi('EFcontainer').className = 'submit_button_disabled';
//check jQuery support
gebi('reg_rep_form').style.position = 'static';
$("div#reg_rep_form").css('position','relative');
if (gebi('reg_rep_form').style.position == 'relative') {} else {alert('Ваш браузер не поддерживает JavaScript в полной мере. Требуеться: Intenet Explorer v6.0 и выше; FireFox v2.0 и выше; Opera v9.25 и выше; Safari v2.0 и выше.');return;}
//end check jQuery support
my_reg = document.getElementById("region");
jQuery.post('/sender.php?cmd=reg_rep',
{
'fullorg': encodeURIComponent($('#fullorg').val()),
'region': encodeURIComponent(my_reg.options[my_reg.selectedIndex].value),
'fullname': encodeURIComponent($('#fullname').val()),
'position': encodeURIComponent($('#position').val()),
'email': escape($('#email').val()),
'phone': encodeURIComponent($('#phone').val()),
'workarea': encodeURIComponent($('#workarea').val())
}, function(data){location.href='/join/representative/registered/';});
}
function redir(){
choose = document.getElementById("country");
var url = choose.options[choose.selectedIndex].value;
if (url) {
location.href = url;
}
}
function preview(path,w,h)
{
var pw=window.open("","previewWindow","toolbar=no,location=no,directoties=no,status=no,scrollbars=no,menubar=no,resizable=no,width="+w+",height="+h);
pw.document.write("<html><head><title>Увел.... изобр.....</title></head><body leftmargin='0' topmargin='0'>");
pw.document.write("<img src='"+path+"' border='0' vspace='0' hspace='0'></body></html>");
}
Спустя 9 минут, 51 секунда (28.10.2010 - 21:01) aH6y написал(а):
А к чему тут PHP программист если тут код js? Jqery и Php - разные языки
Спустя 17 минут, 21 секунда (28.10.2010 - 21:19) moskitos80 написал(а):
В том то и дело, что теперь, похоже знание языка php - автоматически подразумевает знание JS. Так по крайней мере думают некоторые работадатели - убедился на личном опыте

Спустя 3 минуты, 47 секунд (28.10.2010 - 21:22) linker написал(а):
JQuery - не язык, а всего лишь фреймворк написанный на JavaScript, который позволяет обеспечить легкость программирования, только при этом напрочь забыли, что вот это гумно нахрен нечитаемо в принципе.
Спустя 29 минут, 39 секунд (28.10.2010 - 21:52) inpost написал(а):
moskitos80
Вообщем понять очень сложно так быстро. Слишком много - путается, хотя сам код довольно легкий на первый взгляд. Просто если бы сам писал бы, то легко ориентировался в логике разположения всего подряд. Мне кажется, за денёк можно самому тоже самое написать по ТЗ, и это будет легче, чем бегать по коду.
Я построить в голове картину не могу, но почти всё понял в этом коде...
Вообщем понять очень сложно так быстро. Слишком много - путается, хотя сам код довольно легкий на первый взгляд. Просто если бы сам писал бы, то легко ориентировался в логике разположения всего подряд. Мне кажется, за денёк можно самому тоже самое написать по ТЗ, и это будет легче, чем бегать по коду.
Я построить в голове картину не могу, но почти всё понял в этом коде...
Спустя 46 минут, 48 секунд (28.10.2010 - 22:39) vital написал(а):
А помоему все просто..
Спустя 14 минут, 22 секунды (28.10.2010 - 22:53) inpost написал(а):
vital
Я тоже говорю, что просто! Просто много и лень разбираться =)
Я тоже говорю, что просто! Просто много и лень разбираться =)
Спустя 25 минут, 12 секунд (28.10.2010 - 23:18) moskitos80 написал(а):
inpost
Построчно и я почти всё понял, что чего делает, а вот общую логику - хоть убей не отдупляю... Я вообще прикидываю, если каждый день в подобном придётся разбираться - мозги закипят на второй неделе. Действительно проще по ТЗ заново написать..
Построчно и я почти всё понял, что чего делает, а вот общую логику - хоть убей не отдупляю... Я вообще прикидываю, если каждый день в подобном придётся разбираться - мозги закипят на второй неделе. Действительно проще по ТЗ заново написать..
Спустя 8 часов, 36 минут, 27 секунд (29.10.2010 - 07:55) Michael написал(а):
Код выполняет простые вещи - проверку валидности формы.
Но все немало запутано, дублеж идет. Возможно писалось, а потом дописывалось. Вообще без html особо смотреть не получится. Знания jQuery у автора кода хромают.
Смотри что там за чем идет и пошагово дебаж - иного выхода нет.
Если сам такое будешь делать, то никто не запрещает делать лучше и тогда мозг не станет закипать. Вот глянь что то готовенькое уже есть(это в плане архитектуры).
Но все немало запутано, дублеж идет. Возможно писалось, а потом дописывалось. Вообще без html особо смотреть не получится. Знания jQuery у автора кода хромают.
Смотри что там за чем идет и пошагово дебаж - иного выхода нет.
Если сам такое будешь делать, то никто не запрещает делать лучше и тогда мозг не станет закипать. Вот глянь что то готовенькое уже есть(это в плане архитектуры).
Спустя 6 часов, 53 минуты, 32 секунды (29.10.2010 - 14:48) aH6y написал(а):
linker
Да. Не язык
moskitos80
Не понимаю я таких работодателей, которые не указывают то, что необходимы знания нетолько php, но и jquery и js...
Да. Не язык

moskitos80
Не понимаю я таких работодателей, которые не указывают то, что необходимы знания нетолько php, но и jquery и js...
Спустя 16 минут, 12 секунд (29.10.2010 - 15:05) Гость_Michael написал(а):
Цитата (aH6y @ 29.10.2010 - 11:48) |
moskitos80 Не понимаю я таких работодателей, которые не указывают то, что необходимы знания нетолько php, но и jquery и js... |
Это предполагаемая база знаний web-программиста. mysql например тоже нужно знать "программисту php".
Спустя 8 минут, 3 секунды (29.10.2010 - 15:13) sergeiss написал(а):
Цитата (Гость_Michael @ 29.10.2010 - 16:05) |
Это предполагаемая база знаний web-программиста. mysql например тоже нужно знать "программисту php". |
Не согласен. Всё нужно указывать в явном виде. И MySQL, и Постгре, и другие БД, которые могут потребоваться в конкретном месте. И не просто "знание БД", а именно по определенному виду БД.
А также JS и всего его вариации (jquery и другое), и уровень глубины познаний в этой области.
Спустя 27 минут, 25 секунд (29.10.2010 - 15:40) twin написал(а):
Соискатель должен знать все, работать много, кушать мало.
Какая еще конкретика...

Какая еще конкретика...
Спустя 57 минут, 21 секунда (29.10.2010 - 16:37) aH6y написал(а):
sergeiss
Согласен. Конкретика обязана быть.
Согласен. Конкретика обязана быть.
Спустя 22 минуты, 59 секунд (29.10.2010 - 17:00) Basili4 написал(а):
twin
Еще не болеть не ходить в отпуск не иметь детей ибо они тоже могу болеть а это больничный по уходу не должен быть девочкой потому что девочки беременеют и уходят в долгий отпуск.
Еще не болеть не ходить в отпуск не иметь детей ибо они тоже могу болеть а это больничный по уходу не должен быть девочкой потому что девочки беременеют и уходят в долгий отпуск.
Спустя 17 минут, 50 секунд (29.10.2010 - 17:18) inpost написал(а):
Basili4
Ага, а для флирта на работе можно взять Диаблё, он у нас БИ =))
Ага, а для флирта на работе можно взять Диаблё, он у нас БИ =))
_____________
Сложное - просто. Простое сложно.