[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задание от работодателя
moskitos80
Здравствуйте уважаемые форумчане. Недавно я озаботился сменой работы и подискиваю местечко по вакансии "программист php" (не сочтите за объявление...)
И вот тут, один из потенциальных работодателей выдал тестовое задание:

"разобраться, как работает форма обратной связи в файле ... html, и, по образу и подобию, создать файл ....html с произвольными полями. При необходимости внести изменения в соответствующие файлы.
Возможен и такой формат: объяснить, необходимы ли изменения и если да, то какие и в каких файлах."

Было сказано, что это примерно то, с чем вам (т.е. мне) придётся работать в основном.

Ниже только фрагмент - дальше "лучше"...
причём само это приложение, (если можно так назвать) не работает huh.gif
Я привожу часть кода на 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. Так по крайней мере думают некоторые работадатели - убедился на личном опыте sad.gif

Спустя 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 у автора кода хромают.
Смотри что там за чем идет и пошагово дебаж - иного выхода нет.

Если сам такое будешь делать, то никто не запрещает делать лучше и тогда мозг не станет закипать. Вот глянь что то готовенькое уже есть(это в плане архитектуры).

Спустя 6 часов, 53 минуты, 32 секунды (29.10.2010 - 14:48) aH6y написал(а):
linker
Да. Не язык smile.gif
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 написал(а):
Соискатель должен знать все, работать много, кушать мало. smile.gif
Какая еще конкретика...

Спустя 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
Ага, а для флирта на работе можно взять Диаблё, он у нас БИ =))


_____________
Сложное - просто. Простое сложно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.