[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите доделать скрипт. Заплачу!
12345
вот скрипт http://stat-vk.16mb.com/calc/
аочти всё сделал, но необходимо немного поправить, а как - незнаю. Вот прошу помощи.

При выборе длинны из выподающего списка, необходимо чтоб сразуже менялось поле "Цена на м.куб.", а у меня оно меняется после того как изменю ещё какое либо поле.

И еще необходимо добавить кнопку, при нажатии на нее должно появлятся еще одна такаяже строка с такими полями, но чтоб вводить уже другие данные.

Максимум таких строк 10.

Заплачу 150-200рублей на ЯД или на WebMoney.

НЕОБХОДИМО СДЕЛАТЬ СЕГОДНЯ!!!!

Прикреплен скрин




ВОТ КОД

<html>
<head>
<script
language="JavaScript">
<!--
function recalc(){
if(1==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1350}
if(2==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1400}
if(2.25==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1450}
if(2.5==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1500}
if(3==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1650}
if(4==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1750}
if(4.5==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1850}
if(5==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1950}
if(6==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=2050}

document.getElementById('fieldRes2').innerHTML=(parseInt(document.getElementById('field1').value)*parseInt(document.getElementById('field2').value)*parseInt(document.getElementById('field3').value)*document.getElementById('fieldRes7').innerHTML*parseInt(document.getElementById('field4').value))/1000000;

document.getElementById('fieldRes1').innerHTML=(parseInt(document.getElementById('field1').value)*parseInt(document.getElementById('field2').value)*parseInt(document.getElementById('field3').value)*document.getElementById('fieldRes7').innerHTML)/1000000}
//-->
</script>
</head>
<body>
<table
border=1>
<tr><th>
Ширина</th><th>Толщина</th><th>Длинна</th> <th>Цена на м.куб.</th> <th>Количество шт.</th><th>Объем м3</th><th>Цена</th> </tr>
<tr>
<td><input
type=text id="field1" onKeyUp=recalc() value=0></td>
<td><input
type=text id="field2" onKeyUp=recalc() value=0></td>
<td><select
id="field3" onKeyUp=recalc()>
<option
value="1">1</option>
<option
value="2">2</option>
<option
value="2.25">2.25</option>
<option
value="2.5">2.5</option>
<option
value="3">3</option>
<option
value="4">4</option>
<option
value="4.5">4.5</option>
<option
value="5">5</option>
<option
value="6">6</option>
</select>
</td>

<td><span
id="fieldRes7">0</span></td>
<td><input
type=text id="field4" onKeyUp=recalc() value=0></td>
<td ><span
id="fieldRes1">0</span></td>
<td ><span
id="fieldRes2">0</span></td>
</tr>
</table>
</body>
</html>





Спустя 2 часа, 59 минут, 53 секунды (3.06.2012 - 17:36) 12345 написал(а):
Что, никто не может помоч?

Спустя 3 часа, 7 минут, 15 секунд (3.06.2012 - 20:43) Zombie_Forever написал(а):
Для работы скрипта при выборе из списка нужно:

<td><select id="field3" onKeyUp=recalc()>

заменить на
<td><select id="field3" onchange=recalc()>

вроде...

здесь довольно подробно расжованно по поводу добавления строк

http://citforum.ru/internet/javascript/dynamic_form/

Спустя 57 минут, 54 секунды (3.06.2012 - 21:41) 12345 написал(а):
Цитата
<td><select id="field3" onKeyUp=recalc()>

заменить на
<td><select id="field3" onchange=recalc()>

Спасибо, работает)
щас о добавлении строк почитаю

Спустя 2 минуты, 53 секунды (3.06.2012 - 21:44) Zombie_Forever написал(а):
Мир не без добрых людей... wink.gif

Спустя 20 минут, 55 секунд (3.06.2012 - 22:05) 12345 написал(а):
только вот что-то со строками проблема. Как сделать чтоб в каждой строке своя сумма менялась в двух последних полях?

Спустя 4 минуты, 4 секунды (3.06.2012 - 22:09) Zombie_Forever написал(а):
я не телепат, уж извени... ты код кинь, гляну - помогу, чем смогу...

Спустя 8 минут, 43 секунды (3.06.2012 - 22:18) 12345 написал(а):
Вот весь скрипт
<html> 
<head>
<script
language="JavaScript">
<!--
function recalc(){
if(1==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1450}
if(2==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1450}
if(2.25==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1450}
if(2.5==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1500}
if(3==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1650}
if(4==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1450}
if(4.5==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1450}
if(5==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1900}
if(6==parseInt(document.getElementById('field3').value)){document.getElementById('fieldRes7').innerHTML=1650}

document.getElementById('fieldRes2').innerHTML=(parseInt(document.getElementById('field1').value)*parseInt(document.getElementById('field2').value)*parseInt(document.getElementById('field3').value)*document.getElementById('fieldRes7').innerHTML*parseInt(document.getElementById('field4').value))/1000000;

document.getElementById('fieldRes1').innerHTML=(parseInt(document.getElementById('field1').value)*parseInt(document.getElementById('field2').value)*parseInt(document.getElementById('field3').value)*document.getElementById('fieldRes7').innerHTML)/1000000}
//-->
</script>
</head>
<body> <span
id="table">
<table
border=1>
<tr><th>
Ширина</th><th>Толщина</th><th>Длинна</th> <th>Цена на м.куб.</th> <th>Количество шт.</th><th>Объем м3</th><th>Цена</th> </tr>
<tr>
<td><input
type=text id="field1" onKeyUp=recalc() value=0></td>
<td><input
type=text id="field2" onKeyUp=recalc() value=0></td>
<td><select
id="field3" onchange=recalc()>
<option
value="1">1</option>
<option
value="2">2</option>
<option
value="2.25">2.25</option>
<option
value="2.5">2.5</option>
<option
value="3">3</option>
<option
value="4">4</option>
<option
value="4.5">4.5</option>
<option
value="5">5</option>
<option
value="6">6</option>
</select>
</td>

<td><span
id="fieldRes7">1450</span></td>
<td><input
type=text id="field4" onKeyUp=recalc() value=0></td>
<td ><span
id="fieldRes1">0</span></td>
<td ><span
id="fieldRes2">0</span></td>
</tr>
</table>
</body>
</html>


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

Я ЗАплачу! Просто сегодня срочно надо! А я в js новичек

Спустя 1 минута, 51 секунда (3.06.2012 - 22:19) Игорь_Vasinsky написал(а):
для начала - уникализировать ID или обращаться к элементам не по ID, а на пример по порядку их расположения в DOM

Спустя 1 минута (3.06.2012 - 22:20) Zombie_Forever написал(а):
wink.gif я и до новичка в js не дорос... поисковики выручают... wink.gif
ты так и не прикрутил добавление и удаление сток... хм... ча прикрутим...

Спустя 1 минута, 44 секунды (3.06.2012 - 22:22) 12345 написал(а):
ну прикрути) я что-то прикручивал, добавлялось только 1 строка и всё) в итоге две получалось только

Спустя 3 часа, 40 минут, 28 секунд (4.06.2012 - 02:03) Zombie_Forever написал(а):
как то так

<html> 
<head>
<script
language="JavaScript">
<!--
function recalc(q){
if(1==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.25==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1500}
if(3==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}
if(4==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(4.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1900}
if(6==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}

document.getElementById('cena['+q+']').innerHTML=(parseInt(document.getElementById('shir['+q+']').value)*parseInt(document.getElementById('tolsh['+q+']').value)*parseInt(document.getElementById('dlin['+q+']').value)*document.getElementById('cenamk['+q+']').innerHTML*parseInt(document.getElementById('kol['+q+']').value))/1000000;

document.getElementById('obem['+q+']').innerHTML=(parseInt(document.getElementById('shir['+q+']').value)*parseInt(document.getElementById('tolsh['+q+']').value)*parseInt(document.getElementById('dlin['+q+']').value)*document.getElementById('cenamk['+q+']').innerHTML)/1000000}
//-->
</script>
</head>
<body>
<table
border=1>
<tr><th>
Ширина</th><th>Толщина</th><th>Длинна</th> <th>Цена на м.куб.</th> <th>Количество шт.</th><th>Объем м3</th><th>Цена</th> </tr>
</table>

<div
id="tabl[0]">
<table
id="sector" nomer="[0]" border=1>
<tr>
<td><input
type=text id="shir[0]" onKeyUp=recalc(0) value=0></td>
<td><input
type=text id="tolsh[0]" onKeyUp=recalc(0) value=0></td>
<td><select
id="dlin[0]" onchange=recalc(0)>
<option
value="1">1</option>
<option
value="2">2</option>
<option
value="2.25">2.25</option>
<option
value="2.5">2.5</option>
<option
value="3">3</option>
<option
value="4">4</option>
<option
value="4.5">4.5</option>
<option
value="5">5</option>
<option
value="6">6</option>
</select>
</td>

<td><span
id="cenamk[0]">1450</span></td>
<td><input
type=text id="kol[0]" onKeyUp=recalc(0) value=0></td>
<td ><span
id="obem[0]">0</span></td>
<td ><span
id="cena[0]">0</span></td>
<td
valign="top"><a href="#" onclick="return rmline(0);">удалить</td>
</tr>

</table>


</div>
<div
id='tabl[1]'>
</div>
<table>
<tr><td><a
href="#" onclick="return addline();">добавить</td></tr>
</table>
<script>
var
c=0;
function rmline(q)
{
if (c==0) return false; else c--;
s=document.getElementById('tabl['+q+']').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<table id="?sector"? nomer="?\\['+q+'.*?<\\/table>','gi');
s=s.replace(re,'');
document.getElementById('tabl['+q+']').innerHTML=s;
return false;
}
function addline()
{
met1: c++;
s=document.getElementById('tabl['+(c-1)+']').innerHTML;
s=s.replace(/[\r\n]/g,'');
re2=/\[\d+\]/gi;
s1=s.replace(re2,'['+c+']');
s1=s1.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
s1=s1.replace(/(recalc\()(\d+\))/gi,'$1'+c+')');
s=s1;

s=s+'<div id=\'tabl['+(c+1)+']\'></div>';
document.getElementById('tabl['+c+']').innerHTML=s+'as'+c;
return false;
}

</script>
</body>
</html>

Спустя 50 секунд (4.06.2012 - 02:03) Zombie_Forever написал(а):
если честно, я бы для себя сделал всё совсем не так... не на такой концепции....

Спустя 5 часов, 31 минута, 53 секунды (4.06.2012 - 07:35) 12345 написал(а):
А как сделать в одну всё таблицу?
У меня так получается, но ничего не добавляется(
<html> 
<head>
<script
language="JavaScript">
<!--
function recalc(q){
if(1==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.25==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1500}
if(3==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}
if(4==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(4.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1900}
if(6==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}

document.getElementById('cena['+q+']').innerHTML=(parseInt(document.getElementById('shir['+q+']').value)*parseInt(document.getElementById('tolsh['+q+']').value)*parseInt(document.getElementById('dlin['+q+']').value)*document.getElementById('cenamk['+q+']').innerHTML*parseInt(document.getElementById('kol['+q+']').value))/1000000;

document.getElementById('obem['+q+']').innerHTML=(parseInt(document.getElementById('shir['+q+']').value)*parseInt(document.getElementById('tolsh['+q+']').value)*parseInt(document.getElementById('dlin['+q+']').value)*document.getElementById('cenamk['+q+']').innerHTML)/1000000}
//-->
</script>
</head>
<body>
<table
border=1>
<tr><th>
Ширина</th><th>Толщина</th><th>Длинна</th> <th>Цена на м.куб.</th> <th>Количество шт.</th><th>Объем м3</th><th>Цена</th> </tr>


<div
id="tabl[0]">

<tr
id="sector" nomer="[0]">
<td><input
type=text id="shir[0]" onKeyUp=recalc(0) value=0></td>
<td><input
type=text id="tolsh[0]" onKeyUp=recalc(0) value=0></td>
<td><select
id="dlin[0]" onchange=recalc(0)>
<option
value="1">1</option>
<option
value="2">2</option>
<option
value="2.25">2.25</option>
<option
value="2.5">2.5</option>
<option
value="3">3</option>
<option
value="4">4</option>
<option
value="4.5">4.5</option>
<option
value="5">5</option>
<option
value="6">6</option>
</select>
</td>

<td><span
id="cenamk[0]">1450</span></td>
<td><input
type=text id="kol[0]" onKeyUp=recalc(0) value=0></td>
<td ><span
id="obem[0]">0</span></td>
<td ><span
id="cena[0]">0</span></td>
<td
valign="top"><a href="#" onclick="return rmline(0);">удалить</a></td>
</tr>
</div>
<div
id='tabl[1]'>
</div>
</table>



<a
href="#" onclick="return addline();">добавить</a>
<script>
var
c=0;
function rmline(q)
{
if (c==0) return false; else c--;
s=document.getElementById('tabl['+q+']').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?sector"? nomer="?\\['+q+'.*?<\\/tr>','gi');
s=s.replace(re,'');
document.getElementById('tabl['+q+']').innerHTML=s;
return false;
}
function addline()
{
met1: c++;
s=document.getElementById('tabl['+(c-1)+']').innerHTML;
s=s.replace(/[\r\n]/g,'');
re2=/\[\d+\]/gi;
s1=s.replace(re2,'['+c+']');
s1=s1.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
s1=s1.replace(/(recalc\()(\d+\))/gi,'$1'+c+')');
s=s1;

s=s+'<div id=\'tabl['+(c+1)+']\'></div>';
document.getElementById('tabl['+c+']').innerHTML=s+'';
return false;
}

</script>
</body>
</html>

Спустя 1 минута, 11 секунд (4.06.2012 - 07:37) 12345 написал(а):
я изменял код здесь
Цитата
<table border=1>
<tr><th>Ширина</th><th>Толщина</th><th>Длинна</th> <th>Цена на м.куб.</th> <th>Количество шт.</th><th>Объем м3</th><th>Цена</th> </tr>


<div id="tabl[0]">

<tr id="sector" nomer="[0]">
<td><input type=text id="shir[0]" onKeyUp=recalc(0) value=0></td>
<td><input type=text id="tolsh[0]" onKeyUp=recalc(0) value=0></td>
<td><select id="dlin[0]" onchange=recalc(0)>
<option value="1">1</option>
<option value="2">2</option>
<option value="2.25">2.25</option>
<option value="2.5">2.5</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="4.5">4.5</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</td>

<td><span id="cenamk[0]">1450</span></td>
<td><input type=text id="kol[0]" onKeyUp=recalc(0) value=0></td>
<td ><span id="obem[0]">0</span></td>
<td ><span id="cena[0]">0</span></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</a></td>
</tr>
</div>
<div id='tabl[1]'>
</div>
</table>

и здесь
Цитата
if (c==0) return false; else c--;
s=document.getElementById('tabl['+q+']').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?sector"? nomer="?\\['+q+'.*?<\\/tr>','gi');
s=s.replace(re,'');
document.getElementById('tabl['+q+']').innerHTML=s;
return false;


Спустя 59 минут, 51 секунда (4.06.2012 - 08:36) Zombie_Forever написал(а):
задачей конкретных размеров во всех 3х таблицах, либо одинаковыми процентами...
в этом способе по другому хз, мож и можно, но я точно не знаю...
вообще нужно было эту штуку реализовать полностью через js, либо если сервак на php, то через POST либо GET запросы...

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

Спустя 8 минут, 47 секунд (4.06.2012 - 08:45) 12345 написал(а):
Попробуй ты сделать

Спустя 2 часа, 58 минут, 58 секунд (4.06.2012 - 11:44) Zombie_Forever написал(а):
если так, то при добавлении и удалении данные почти все стираются...
<html> 
<head>
<script
language="JavaScript">
<!--
function recalc(q){
if(1==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.25==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1500}
if(3==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}
if(4==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(4.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1900}
if(6==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}

document.getElementById('cena['+q+']').innerHTML=(parseInt(document.getElementById('shir['+q+']').value)*parseInt(document.getElementById('tolsh['+q+']').value)*parseInt(document.getElementById('dlin['+q+']').value)*document.getElementById('cenamk['+q+']').innerHTML*parseInt(document.getElementById('kol['+q+']').value))/1000000;

document.getElementById('obem['+q+']').innerHTML=(parseInt(document.getElementById('shir['+q+']').value)*parseInt(document.getElementById('tolsh['+q+']').value)*parseInt(document.getElementById('dlin['+q+']').value)*document.getElementById('cenamk['+q+']').innerHTML)/1000000}
//-->
</script>
</head>
<body>
<span
id="table">
<table
border=1>
<tr><th>
Ширина</th><th>Толщина</th><th>Длинна</th> <th>Цена на м.куб.</th> <th>Количество шт.</th><th>Объем м3</th><th>Цена</th><th><a href="#" onclick="return addline();">добавить</th> </tr>
<tr
id="sector" nomer="[0]" border=1 valign="top">
<td><input
type=text id="shir[0]" onKeyUp=recalc(0) value=0></td>
<td><input
type=text id="tolsh[0]" onKeyUp=recalc(0) value=0></td>
<td><select
id="dlin[0]" onchange=recalc(0)>
<option
value="1">1</option>
<option
value="2">2</option>
<option
value="2.25">2.25</option>
<option
value="2.5">2.5</option>
<option
value="3">3</option>
<option
value="4">4</option>
<option
value="4.5">4.5</option>
<option
value="5">5</option>
<option
value="6">6</option>
</select>
</td>

<td><span
id="cenamk[0]">1450</span></td>
<td><input
type=text id="kol[0]" onKeyUp=recalc(0) value=0></td>
<td ><span
id="obem[0]">0</span></td>
<td ><span
id="cena[0]">0</span></td>
<td
valign="top"><a href="#" onclick="return rmline(0);">удалить</td>
</tr>
</table>
</span>
<script>
var
c=0; //счётчик количества строк
var a=0;
function addline()
{
a++;
c++; // увеличиваем счётчик строк
s=document.getElementById('table').innerHTML; // получаем HTML-код таблицы
s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
re=/(.*)(<tr id=.*>)(<\/table>)/gi;
// это регулярное выражение позволяет выделить последнюю строку таблицы

s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
s2=s1.replace(/\[\d+\]/gi,'['+c+']'); // заменяем все цифры к квадратных скобках
// на номер новой строки

s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
// заменяем аргумент функции rmline на номер новой строки
s2=s2.replace(/(recalc\()(\d+\))/gi,'$1'+c+')');
s=s.replace(re,'$1$2'+s2+'$3');
// создаём HTML-код с добавленным кодом новой строки
document.getElementById('table').innerHTML=s;
// возвращаем результат на место исходной таблицы
return false; // чтобы не происходил переход по ссылке

}

function rmline(q)
{
if (a==0) return false; else a--;
// если раскомментировать предыдущую строчку, то последний (единственный)
// элемент удалить будет нельзя.

s=document.getElementById('table').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?sector"? nomer="?\\['+q+'.*?<\\/tr>','gi');
// это регулярное выражение позволяет выделить строку таблицы с заданным номером

s=s.replace(re,'');
// заменяем её на пустое место
document.getElementById('table').innerHTML=s;
return false;
}
</script>
</body>
</html>

Спустя 10 минут, 14 секунд (4.06.2012 - 11:54) 12345 написал(а):
не, надо чтоб не стирались(

Спустя 13 минут, 45 секунд (4.06.2012 - 12:08) Zombie_Forever написал(а):
в скрипт допиши массивы в которые будут кидаться все данные и после добавления/удаления обратно выкидываться....

Спустя 2 минуты, 33 секунды (4.06.2012 - 12:11) 12345 написал(а):
это как?) сделай всё, я заплачу)

Спустя 2 часа, 3 минуты, 37 секунд (4.06.2012 - 14:14) 12345 написал(а):
попробуй сделать этот скрипт.

<script type="text/javascript" src="http://lesomaterial.com.ua/js/jquery.js"></script>
<
script type="text/javascript">window.onload=init;
col=2;
max_cost=0;
min_cost=0;


function init(){
min_cost=parseFloat($('#min_cost').val());
max_cost=parseFloat($('#max_cost').val());
}

// добавляет еще поля
function click_add(){
$('#calc_box').append('<tr> <div id="num'+col+'" style="margin:10px 0px 10px 0px;"> <td> <input type="text" id="num'+col+'_e1" value="0"/> </td> <td> <input type="text" id="num'+col+'_e2" value="0"/> </td> <td> <select id="num'+col+'_e3" onchange=recalc()><option value="1">1</option><option value="2">2</option><option value="2.25">2.25</option><option value="2.5">2.5</option><option value="3">3</option><option value="4">4</option><option value="4.5">4.5</option><option value="5">5</option><option value="6">6</option> </select> </td> <td> <span id="num'+col+'_e40">1450</span> </td> <td> <input type="text" id="num'+col+'_e4" value="0"/> </td> <td><input type="text" id="num'+col+'_e5" value="0" readonly /> </td> <td><input type="text" id="num'+col+'_e6" value="0" readonly /></td> </div></tr>');
col++;
}

// кроссбраузерное создание XMLHttpRequest-обьекта
//--------------------------------------------

function getXMLHttpRequest(){
var request=false;
try{request=new XMLHttpRequest();}
catch(trymicrosoft){
try{request=new ActiveXObject("Msxml2.XMLHTTP");}
catch(othermicrosoft){
try{request=new ActiveXObject("Microsoft.XMLHTTP");}
catch(failed){request=false;}
}
}

if(!request)alert('Ошибка инициалиации обьекта XMLHttpRequest! ');
return request;
}
//--------------------------------------------

// функция, к-рая загружается после окончания запроса по смене языка
//--------------------------------------------

function AfterChangeLanguage(){
if(request.readyState==4)
if(request.status==200){
var url=$('#curr_page').val();
url=($('#curr_lang').val()!='en')?('en_'+url):url.substr(3);
document.location.href=url;
return true;
}else return false;
}
//--------------------------------------------

// считает

function click_proc(ventObj){
all_kubatura=0;
all_cena=0;
//min_cost=parseFloat($('#min_cost').val(),10);
//max_cost=parseFloat($('#max_cost').val(),10);


for(i=1;i<col;i++){

kubatura=0;
cena=0;

e1=parseFloat($('#num'+i+'_e1').val());
e2=parseFloat($('#num'+i+'_e2').val());
e3=parseFloat($('#num'+i+'_e3').val());
e4=parseFloat($('#num'+i+'_e4').val());

if(e3==6000){
switch($('#curr_lang').val()){
case 'ru':
alert('длинна 6м - не высчитывается. Звонить индивидуально.');
break;
case 'en':
alert('6m is long - not calculated. To ring individually.');
break;
}
kubatura=0;
cena=0;
$('#num'+i+'_e5').val(kubatura);
$('#num'+i+'_e6').val(cena);
all_kubatura+=kubatura;
all_cena+=cena;
}else{
kubatura=e1*e2*e3*e4*0.000000001;// переводим из миллиметров в метры

if(e3<=5)k=min_cost;
if(e3>5)k=max_cost;
cena=kubatura*k;

$('#num'+i+'_e5').val(kubatura.toFixed(2)); // округляет до трех цифр после запятой
$('#num'+i+'_e6').val(cena.toFixed(2));

all_kubatura+=kubatura;
all_cena+=cena;

} //else
} // for

// a=25.345
// b=a.toPrecision(2)
// all_kubatura=Math.round(all_kubatura);
// all_cena=Math.round(all_cena);

$('#itog_kub').val(all_kubatura.toFixed(2));
$('#itog_cena').val(all_cena.toFixed(2));
return true;
} // function click_proc()

$(document).ready(function(){
var ua = navigator.userAgent.toLowerCase();
if (ua.indexOf("opera") != -1) { //opera
$('#footer').css({'margin':'0px','position':'relative','top':'-59px'});
$('#footer_chicken').css({'margin':'0px','position':'relative','top':'-183px'});
}
if (ua.indexOf("gecko") != -1) { //mozilla
$('#footer_green_light').css({'margin':'0px','position':'relative','top':'0px'});
$('#footer_chicken').css({'margin':'0px','position':'relative','top':'-183px'});
}

// нажатие на ru
$('#lang_ru').click(function(){
if($('curr_lang').val()!='ru'){
$('#lang_ru').css({'background-color':'#593C19'});
$('#lang_en').css({'background':'none'});
request=getXMLHttpRequest();
var url='php/load_lng.php?page='+$('#curr_page').val()+'&lang=ru';
request.open('GET',url,true);
request.onreadystatechange=AfterChangeLanguage;
request.send(null);
return true;
}else return false;
});

// нажатие на en
$('#lang_en').click(function(){
if($('curr_lang').val()!='en'){
$('#lang_ru').css({'background':'none'});
$('#lang_en').css({'background-color':'#593C19'});
request=getXMLHttpRequest();
var url='php/load_lng.php?page='+$('#curr_page').val()+'&lang=en';
request.open('GET',url,true);
request.onreadystatechange=AfterChangeLanguage;
request.send(null);
return true;
}else return false;
});

});//ready</script>



<div id="kalkulator">
<
form method="post" action="zakaz" name="f1">
<
div id="calc_box" class="calc_box">
<
input type="hidden" id="min_cost" value="1300.00"/>
<
input type="hidden" id="max_cost" value="1350.00"/>
<
table border="1"> <tr><td>dasdasd</td><td>dasdasd</td><td>dasdasd</td><td>dasdasd</td><td>dasdasd</td><td>dasdasd</td><td>dasdasd</td></tr>
<
div id="num1" style="margin:10px 0px 10px 0px;"> <tr><td> <input type="text" id="num1_e1" value="0"/> </td> <td> <input type="text" id="num1_e2" value="0"/> </td> <td> <select id="num1_e3" onchange=recalc()><option value="1">1</option><option value="2">2</option><option value="2.25">2.25</option><option value="2.5">2.5</option><option value="3">3</option><option value="4">4</option><option value="4.5">4.5</option><option value="5">5</option><option value="6">6</option> </select> </td> <td> <span id="num1_e40">1450</span> </td> <td> <input type="text" id="num1_e4" value="0"/> </td> <td><input type="text" id="num1_e5" value="0" readonly /> </td> <td><input type="text" id="num1_e6" value="0" readonly /></td></tr> </div> </table>
</
div><!-- id=calc_box -->


<
div class="calc_box">
<
div id="buttons" style="margin:20px 0px 10px 10px">
<
span id="btn_add" style="cursor: pointer; border:1px solid silver; padding: 3px;" onclick="click_add()">еще +</span>
<
span id="btn_proc" style="margin-left:136px; cursor: pointer; border:1px solid silver; padding: 3px;" onclick="click_proc()">расчитать</span>
</
div>

</
div><!-- class=calc_box -->
</
form>
</
div><!-- kalkulator -->






Тут необходимо сделать всё в таблицу, и сделать чтоб менялось то поле, при изменении чисел из выпадающего списка

Спустя 1 минута, 18 секунд (4.06.2012 - 14:16) 12345 написал(а):
или первый скрипт сделай, если сможешь

Спустя 5 часов, 5 минут, 39 секунд (4.06.2012 - 19:21) bodja написал(а):
Zombie_Forever
JS очень гибкий язык,и для работы с DOM есть достаточно много методов.
Это для Вас.

Цитата
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Test</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>
<body>
<table>
<tr>
  <td>1</td>
  <td>2</td>
  <td>3</td>
  <td>4</td>
  <td>5</td>
</tr>
<tr>
  <td>6</td>
  <td>7</td>
  <td>8</td>
  <td>9</td>
  <td>10</td>
</tr>
</table>

<script type="text/javascript">
var tab = document.getElementsByTagName('table');
//получаем значение 1 таблицы ,1 строки,1 ячейки
alert(tab[0].rows[0].cells[0].innerHTML);
//получаем значение 1 таблицы ,2 строки,5 ячейки
alert(tab[0].rows[1].cells[4].innerHTML);
</script>
</body>
</html>



12345

В JS немного другие подходы чем у PHP wink.gif
Он поддерживает обьектно-событийную философию кода.
Ваш задачка ,она только внешне кажется простой,тот кто ее вам дал,
очень хорошо знает то ,что вы должны знать для того , что бы ее решить. wink.gif
Если это конечно тестовое задание,(если нет то ее можно использовать в качестве тестового)
если это халтурка - то у нас значит с прогерами не густо. biggrin.gif

Я ее решать за вас не буду,но подсказать что вам нужно знать смогу.
Итак ,что у нас есть?
1 Маленькая,незаметная кнопочка ,по которой нужно доавлять еще одно такое же самое поле,с таким же самым функционалом.Вывод-нужно знать ООП ,где каждое поле будет выступать отдельным независимым обьектом.
2 У нас есть сами поля для ввода. Вывод - нам нужно знать как создавать эти поля динамически из обьекта в DOM.
3 У нас есть выбранные данные в поле .Вывод - мы должны уметь получать эти значения в обьекте создавшему эти поля.Тоесть для каждого обьекта своя коллекция полей.
4 У нас есть кнопочка "посчитать" .Вывод- мы должны знать как динамически повесить собитие для нее ,что бы вызвать нужный метод в нужном обьекте.
Вот только тогда у вас все получится.
Итог,даже если Вам очень нравится JS и вы просто горите желанием его выучить,хотя бы на среднем уровне ,вам потребуется 2-3месяца как миниум,что бы можно было решить задачку такого калибра.
Так что бросайте это гиблое дело ,идите учится или идите на фриланс.

Спустя 31 минута, 51 секунда (4.06.2012 - 19:53) Игорь_Vasinsky написал(а):
Цитата
халтурка - то у нас значит с прогерами не густо

уровень задачи и цена на наш biggrin.gif это уже как бытавуха повседневная.

Спустя 18 часов, 40 минут, 20 секунд (5.06.2012 - 14:33) Zombie_Forever написал(а):
bodja спасибо за подсказку, достаточно всё просто... В интернет помойки данных методов не нашёл при попытке помочь 12345...

а на счёт -
Цитата
Итог,даже если Вам очень нравится JS и вы просто горите желанием его выучить,хотя бы на среднем уровне ,вам потребуется 2-3месяца как миниум,что бы можно было решить задачку такого калибра. Так что бросайте это гиблое дело ,идите учится или идите на фриланс.

тут нужно желание и умение понимать и вникать + ХОРОШУЮ ЛИТЕРАТУРУ...
Я лет 8 назад так за 2 суток ,не спавши, ассемблер обуздал для PIC микроконтроллеров с нулика... smile.gif

Спустя 11 минут, 3 секунды (5.06.2012 - 14:44) Zombie_Forever написал(а):
12345 Ну что... разобрался что да как ?...

Спустя 28 минут, 19 секунд (5.06.2012 - 15:13) Zombie_Forever написал(а):
Во первых:
С самого начала мне вот это глаза ломало -
if(1==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.25==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(2.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1500}
if(3==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}
if(4==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(4.5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1450}
if(5==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1900}
if(6==parseInt(document.getElementById('dlin['+q+']').value)){document.getElementById('cenamk['+q+']').innerHTML=1650}

и
<td><select id="dlin[0]" onchange=recalc(0)>  
<
option value="1">1</option>
<
option value="2">2</option>
<
option value="2.25">2.25</option>
<
option value="2.5">2.5</option>
<
option value="3">3</option>
<
option value="4">4</option>
<
option value="4.5">4.5</option>
<
option value="5">5</option>
<
option value="6">6</option>
</
select>

меняем на это:
function Dlina(q)
{
var element=[1450,1450,1450,1500,1650,1450,1450,1900,1650];
document.getElementById('cenamk['+q+']').innerHTML=element[parseInt(document.getElementById('dlin['+q+']').value)];
recalc(q);
}

и это:
  <td><select id="dlin[0]" onchange=Dlina(0)>  
<
option value="0">1</option>
<
option value="1">2</option>
<
option value="2">2.25</option>
<
option value="3">2.5</option>
<
option value="4">3</option>
<
option value="5">4</option>
<
option value="6">4.5</option>
<
option value="7">5</option>
<
option value="8">6</option>
</
select>

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

Спустя 4 часа, 20 минут, 4 секунды (5.06.2012 - 19:33) bodja написал(а):
Zombie_Forever

Цитата
Я лет 8 назад так за 2 суток ,не спавши, ассемблер обуздал для PIC микроконтроллеров с нулика...

А сколько у вас времени ушло ,что бы выучить регистры ввода\вывода их битовые поля и научится работать с периферией типа ADC, I2C, SPI, LCD ? wink.gif

Ну вот представте теперь ,что JS -это ассемблер ,а I\O регистры -это DOM ,ну еще плюс еще надо научится рулить этим хозяйством. smile.gif

Я могу вам дать простую и наглядную задачку +100% ее решение пригодится в будущем,
которая позволит посмотреть на JS совсем по другому,но...
Прийдется крепко пошевелить мозгами,помогать буду только подсказками. wink.gif

Спустя 16 минут, 44 секунды (5.06.2012 - 19:50) redreem написал(а):
ну давай уже, или тебя поугоуваривать чтоли? smile.gif

Спустя 8 минут, 3 секунды (5.06.2012 - 19:58) Zombie_Forever написал(а):
Цитата
А сколько у вас времени ушло ,что бы выучить регистры ввода\вывода их битовые поля и научится работать с периферией типа ADC, I2C, SPI, LCD ?

всё за теже двое суток...

Вся соль в том, что была конкретная документация предоставляемая сайтом продавцом по микроконтроллерам - описалово + примерчики по каждым аспектам и командам, а с js - документации куча, но в своем большенстве мусор да мутатень, пока отфильтруешь жизнь пройдёт.... Если бы найти именно полное описание каждой команды с масеньким примерчиком, то и js думаю отдался бы за дней 5 точно...

Спустя 4 минуты, 5 секунд (5.06.2012 - 20:02) bodja написал(а):
Ок,
сегодня постараюсь подготовить.
ЗЫ Щас на работе,могут отвлекать от безделия. biggrin.gif

Спустя 3 минуты, 28 секунд (5.06.2012 - 20:05) Zombie_Forever написал(а):
О.К...
Я пошёл спать, завтра после работы пошевелю мозгами...

Спустя 2 часа, 37 минут, 38 секунд (5.06.2012 - 22:43) bodja написал(а):
Цитата
Если бы найти именно полное описание каждой команды с масеньким примерчиком, то и js думаю отдался бы за дней 5 точно


Ну что ж ,думаю это вам поможет.

redreem
Zombie_Forever

Вот задачка,на решение 5 дней biggrin.gif
Если решите в срок ,пойду на пенсию,уступлю место молодым.
Честно,брошу это гиблое дело. rolleyes.gif

user posted image

Вот то ,что должно быть в ХТМЛ

Цитата
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" >
<title>Задачка</title>
<meta name="keywords" content="" >
<meta name="description" content="" >
<script src="script.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>


Условия задачки.
Не должно быть файла стилей,не должно быть дополнительного элементов в ХТМЛ странице.
При загрузке появляется окошко с кнопкой ,которой можно создавать другие окошка.
В окне две кнопки,красная удаляет окно,зеленая сворачивает\разворачивает.
Удаление окна не через display none ,а через удаление родительского элемента окна в DOM
При клике на шапку прикрытого окна другим окошком - это окно появляется впереди всех.
Верстка окна дивная.JS Без ошибок в консоли.

Содержимое окошек может быть любым рандомным,по своеу желанию ,так же рандомно их расположение.
border-radius и костылей для ИЕ не требую.
Drag-and-drop не требую.
Изменения стиля каждого нового окна не требую.
Просю biggrin.gif biggrin.gif biggrin.gif

Спустя 18 часов, 18 минут, 32 секунды (6.06.2012 - 17:01) Zombie_Forever написал(а):
smile.gif Мля... я это ещё в 2001 годике уже реализовал на js....
Окошки с возможностью закрывать и сворачивать+двигать...
В то время была задумка сайтик на подобных оконцах состряпать с панелью пуск и меню... но кроме как создание, закрытие и сворачивание окошек дело дальше не дошло - время свободное закончилось...

Если мне память не изменяет можно до 256 окошек создать по Z, как их там назвают то, слоями что ли, а возможно уже и расширили колчество слоёв...
Всё грузиться в отдельном файлике js - это понятно...
С первым окном тоже всё ясно... Удаление - ясно, а вот со сварачиванием - судя по рисунку можно в низ окна браузера не скидывать, а просто свернуть в шапку окна... - верно ?...
Вот ещё не понятно -
Цитата
Верстка окна дивная
в каком смысле ? - это условие или это высказывание ?...
К стати стиль можно менять просто изменением картинки, что достаточно просто... в принципе...

Мдя... зря ты направил на Енглиш сайт... я в английском как рыба на песку... - ни как... wink.gif...

Спустя 23 минуты, 24 секунды (6.06.2012 - 17:25) redreem написал(а):
bodja

да какбэ ниче сложного не вижу. просто рутинная возня.
или ты настаиваешь что "будут проблемы"? smile.gif

Спустя 1 час, 10 минут, 14 секунд (6.06.2012 - 18:35) bodja написал(а):
Zombie_Forever
redreem
Ну я же сказал,простая наглядная задачка-сделайте. wink.gif
У вас пять дней.

Цитата
настаиваешь что "будут проблемы"?

Если ты про эти проблемы не знаеш - то они будут. biggrin.gif
Сторонних библиотек не применять.

Цитата
С первым окном тоже всё ясно... Удаление - ясно, а вот со сварачиванием - судя по рисунку можно в низ окна браузера не скидывать, а просто свернуть в шапку окна... - верно ?...

Да ,просто вниз-вверх.Анимации не требую-типа плавно.

Цитата
в каком смысле ? - это условие или это высказывание ?...

Верстка на div - это условие.

Спустя 3 часа, 43 минуты, 23 секунды (6.06.2012 - 22:18) Invis1ble написал(а):
bodja
Цитата
Сторонних библиотек не применять.

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

Спустя 15 часов, 19 минут, 2 секунды (7.06.2012 - 13:37) bodja написал(а):
Invis1ble

Эта задачка не на умение пользоватся другими библиотеками,а на умение писать свои ,что бы другие могли пользоватся. rolleyes.gif
По условиям я думаю вы поняли ,что код должен быть максимально оторван от шаблона,по максиуму не влиять на него своими id class name и небыть зависимым от него его css и версткой,не влиять на другой JS глобальными переменными и небыть зависимым от других библиотек.
Тоесть подключили и с минимальными проблемами поехали,как плагин на квери или других либ biggrin.gif
У нее много вариантов решения ,то что будет решена я не сомневаюсь,вопрос в том как она будет решена.

Спустя 45 секунд (7.06.2012 - 13:38) redreem написал(а):
bodja

т.е. "свои" библы - без проблем? smile.gif
и еще, давай не 5 дней, а хотябы пара недель. не потому что долго делать, делать - сутки, просто завал работы и надо еще выкроить себе этот чудесный выходной smile.gif

Спустя 3 часа, 32 минуты, 19 секунд (7.06.2012 - 17:10) bodja написал(а):
redreem

"Свое" без проблем,
2 недели хорошо,тем более если кто не успеет к тому сроку ,что я выделил,я на пенсию все равно не уйду. biggrin.gif biggrin.gif biggrin.gif

Спустя 24 минуты, 55 секунд (7.06.2012 - 17:35) redreem написал(а):
нуу... даже не знаю какая задача заманчивее... сделать окошки или отправить тебя на пенсию smile.gif

Спустя 18 часов, 29 минут, 32 секунды (8.06.2012 - 12:05) bodja написал(а):
Ладно,доделывай тогда скорее,а то у меня уже назрела следуючая задачка ,
после решения которой ты положиш глубокий и откровенный болт на MVC ,шаблонизатор и движок PHP в классическом его представлении.
Так что вполне могу "озадачить" на пол года вперед. biggrin.gif biggrin.gif biggrin.gif

Спустя 14 минут, 39 секунд (8.06.2012 - 12:20) redreem написал(а):
на MVC я и так положил уже давно smile.gif
попробую "угадать": сам в настоящее время разрабатываю модель движка, основанного на исключительно событиях. т.е. любое действие юзера - это событие, на которое поднимается "волна" обработчиков. не? smile.gif

Спустя 14 минут, 42 секунды (8.06.2012 - 12:34) bodja написал(а):
redreem
Неа,
представь,есть хтмл шаблон ,есть простейшие (оставим только для SEO title ,keywords,h1)хтмл страницы контентом,ПХП - нет. biggrin.gif
Нужно сделать так ,что бы шаблон оказался на странице и в нем был этот контент.
Это в общем+некоторые детали(подводные камни biggrin.gif )

Спустя 12 минут, 50 секунд (8.06.2012 - 12:47) redreem написал(а):
ну среду-то надо все таки конкретизировать. что на серверной стороне висит.

Спустя 36 минут, 4 секунды (8.06.2012 - 13:23) bodja написал(а):
На серверной стороне хоть выдача тех же страниц без шаблона,хотя в этом смысла мало,
более полезно держать-писать комменты к страницам ,майл,ограниченый доступ и т.д.
Формат JSON TXT HTML неважно

Спустя 17 минут, 27 секунд (8.06.2012 - 13:41) redreem написал(а):
ну если там хотяб mod_rewrite есть, то технически нет проблем на JS организовать подгрузку нужного контента в шаблон.

Спустя 1 день, 22 часа, 31 минута, 54 секунды (10.06.2012 - 12:13) redreem написал(а):
bodja, смотрел пару раз фильмы про выход на пенсию, так там вроде как людьми довольно болезненно воспринимается сей факт. "Мамонт" вон вроде с Жераром Депардье, так у чела крышняк конкретно поехал, - прыгнул на байк и поехал куралесить. К чему все это... Просто беспокоюсь, ты морально готов пойти на пенсию или погорячился? smile.gif

UPD: http://websyndicate.ru/phpforum/bodja/index.html
полуфабрикат 15-часового кодинга. на шлифовку и подгонку под условия задачи уйдет пара-тройка часов, незнай только есть ли смысл, тыж все равно отмажешься от пенсии smile.gif .

Спустя 23 часа, 7 минут, 31 секунда (11.06.2012 - 11:20) bodja написал(а):
redreem

Я морально уже готов пойти на пенсию.
Дело в том ,что я хотел достич в веб-программировании,я достиг.
Поэтому я в любом случае уже стою на пороге ,когда задаеш себе вопрос - для чего я шел по этому пути?
Тут или надо делать проект ,который тебе будет приносить пользу,или садится на байк biggrin.gif и забить на это все.
Просто работать на дяду,ну как сказать ,хороших дядь давно разобрали,остались те которые держат прогера за чернорабочего.
Вот такая у меня сейчас "депрессия" biggrin.gif

Цитата
полуфабрикат 15-часового кодинга. на шлифовку и подгонку под условия задачи уйдет пара-тройка часов, незнай только есть ли смысл, тыж все равно отмажешься от пенсии

Ну скажем так ,за то что признался ,что "полуфабрикат" будем считать что задачка выполнена.
Так что ухожу,хлопнув громко дверью. biggrin.gif
На тех моментах ,которые я ожидал ,что можно споткнутся,ты споткнулся. biggrin.gif
Я думаю ,ты на практике понял ,что эта задачка дает просто "иллюзию" простоты.
По коду ничего не могу сказать,там все загадочно завуалировано,
ну а по действиям,достаточно-
1 Открыть одно окно.
2 Открыть второе окно.
3 Закрыть второе окно.
4 Скрипт в полном ступоре. biggrin.gif
Окна тоже только захлопываются.
Тоесть видно ,что обьекной модели для каждого окна ты не строил,а зря.
Позже выложу свое ПГ с обьяснениями,сможеш сравнить со своим УГ и сделать выводы. biggrin.gif

Спустя 10 минут, 22 секунды (11.06.2012 - 11:30) redreem написал(а):
bodja

Цитата
Скрипт в полном ступоре.

Цитата
на шлифовку и подгонку под условия задачи уйдет пара-тройка часов


не дописаны пара сценариев событий, вот и ступор. так то я в курсе что там недописано smile.gif

Цитата
Тоесть видно ,что обьекной модели для каждого окна ты не строил


ну смотря что ты вкладываеш в это понятие

Цитата
там все загадочно завуалировано


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

Спустя 11 минут, 21 секунда (11.06.2012 - 11:42) bodja написал(а):
redreem
Кнопка "пуск" у тебя должна была в любом случае создавать окно.
В твоем случае- это говорит о ее прямой связи с общим кодом который рулит всеми окнами.

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

Спустя 8 минут, 39 секунд (11.06.2012 - 11:50) redreem написал(а):
bodja

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

кнопка пуск стопортится только изза недоделки в глобальных переменных среды, таких как идентификатор активного окна например.

Спустя 5 минут, 52 секунды (11.06.2012 - 11:56) redreem написал(а):
кстати

Цитата
задачка дает просто "иллюзию" простоты.


я где-то выше говорил - что это просто рутина. в моем случае - рутина - расписать безошибочно сценарии событий.
из нового что изучил в процессе - создание стайлшитов из JS. хотя можно было тупо в стайл загонять параметры - я захотел разгрузить дом.
ну на собыбтийных моделях попрактиковался малость дополнительно. (выше писал зачем мне это надо).

Спустя 35 минут, 10 секунд (11.06.2012 - 12:31) redreem написал(а):
Цитата
Скрипт в полном ступоре


исправлено добавлением 1-й строчки.

Спустя 9 часов, 4 минуты, 22 секунды (11.06.2012 - 21:36) bodja написал(а):
redreem

Хорошо,работа принята,пошел паковать чемоданы. biggrin.gif
Но все таки советую присмотрется к обьектному построению,там можно расширятся за счет наследования,строить отдельные модули за базу всяв эти же окна.
Я себе легко наворотил корзину + пару служебных окон.
Насчет вложености окон как то не подумал,надо будет попробовать.

Спустя 2 часа, 14 минут, 54 секунды (11.06.2012 - 23:51) redreem написал(а):
да если честно: я вообще считаю, что подобный интерфейс в рамках сайтов - неуместен. поэтому и не копаю дальше. и не заморачивался особо насчет "перспективы использования".

Спустя 10 часов, 3 минуты, 39 секунд (12.06.2012 - 09:54) Zombie_Forever написал(а):
Мдя... везёт кому-то со свободным временем...- завидую белой завистью...wink.gif

Спустя 13 минут, 6 секунд (12.06.2012 - 10:07) redreem написал(а):
Zombie_Forever

ну в том-то и прикол, что свободного времени нет. я долго боролся с зудящим желанием "отправить bodja на пенсию", взывая к рассудку и здравому смыслу. ну вот зуд победил smile.gif

Спустя 7 часов, 59 минут, 43 секунды (12.06.2012 - 18:07) Zombie_Forever написал(а):
Да тут хоть какой зуд... с 6.30 на работу до 18.00, с 18.00 ужин, с 18.30 огород+ремонт в хате до 23.00-24.00.. с 23.00-24.00 до 6.30 сон... а на 10-15 минут смысла нет садится... только раскачаешься и усё, а на следующий день уже и не помнишь до куда раскачался.... Так, что даже если пару часиков есть свободных - это для меня роскошь...
Быстрый ответ:

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