аочти всё сделал, но необходимо немного поправить, а как - незнаю. Вот прошу помощи.
При выборе длинны из выподающего списка, необходимо чтоб сразуже менялось поле "Цена на м.куб.", а у меня оно меняется после того как изменю ещё какое либо поле.
И еще необходимо добавить кнопку, при нажатии на нее должно появлятся еще одна такаяже строка с такими полями, но чтоб вводить уже другие данные.
Максимум таких строк 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 написал(а):
Для работы скрипта при выборе из списка нужно:
заменить на
вроде...
здесь довольно подробно расжованно по поводу добавления строк
http://citforum.ru/internet/javascript/dynamic_form/
<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 написал(а):
Мир не без добрых людей...

Спустя 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 написал(а):
Вот весь скрипт
Помоги сделать чтоб добавлялись строки, и чтоб каждая строка была сама по себе(ну чтоб можно было во всех разные числа указывать и чтоб они щитались)
Я ЗАплачу! Просто сегодня срочно надо! А я в js новичек
<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 написал(а):


ты так и не прикрутил добавление и удаление сток... хм... ча прикрутим...
Спустя 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 запросы...
да и ещё... если делать не через отдельную таблицу, то при добавлении - удалении содержимое ячеек очищается - лишь только по этому пришлось замудрить на отдельные таблички, а выровнять таблички я думал ты осилишь.... хм...
в этом способе по другому хз, мож и можно, но я точно не знаю...
вообще нужно было эту штуку реализовать полностью через 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 есть достаточно много методов.
Это для Вас.
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

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

Если это конечно тестовое задание,(если нет то ее можно использовать в качестве тестового)
если это халтурка - то у нас значит с прогерами не густо.

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

Спустя 18 часов, 40 минут, 20 секунд (5.06.2012 - 14:33) Zombie_Forever написал(а):
bodja спасибо за подсказку, достаточно всё просто... В интернет помойки данных методов не нашёл при попытке помочь 12345...
а на счёт -
а на счёт -
Цитата |
Итог,даже если Вам очень нравится JS и вы просто горите желанием его выучить,хотя бы на среднем уровне ,вам потребуется 2-3месяца как миниум,что бы можно было решить задачку такого калибра. Так что бросайте это гиблое дело ,идите учится или идите на фриланс. |
тут нужно желание и умение понимать и вникать + ХОРОШУЮ ЛИТЕРАТУРУ...
Я лет 8 назад так за 2 суток ,не спавши, ассемблер обуздал для PIC микроконтроллеров с нулика...

Спустя 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 ?

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

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

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

Спустя 8 минут, 3 секунды (5.06.2012 - 19:58) Zombie_Forever написал(а):
Цитата |
А сколько у вас времени ушло ,что бы выучить регистры ввода\вывода их битовые поля и научится работать с периферией типа ADC, I2C, SPI, LCD ? |
всё за теже двое суток...
Вся соль в том, что была конкретная документация предоставляемая сайтом продавцом по микроконтроллерам - описалово + примерчики по каждым аспектам и командам, а с js - документации куча, но в своем большенстве мусор да мутатень, пока отфильтруешь жизнь пройдёт.... Если бы найти именно полное описание каждой команды с масеньким примерчиком, то и js думаю отдался бы за дней 5 точно...
Спустя 4 минуты, 5 секунд (5.06.2012 - 20:02) bodja написал(а):
Ок,
сегодня постараюсь подготовить.
ЗЫ Щас на работе,могут отвлекать от безделия.
сегодня постараюсь подготовить.
ЗЫ Щас на работе,могут отвлекать от безделия.

Спустя 3 минуты, 28 секунд (5.06.2012 - 20:05) Zombie_Forever написал(а):
О.К...
Я пошёл спать, завтра после работы пошевелю мозгами...
Я пошёл спать, завтра после работы пошевелю мозгами...
Спустя 2 часа, 37 минут, 38 секунд (5.06.2012 - 22:43) bodja написал(а):
Цитата |
Если бы найти именно полное описание каждой команды с масеньким примерчиком, то и js думаю отдался бы за дней 5 точно |
Ну что ж ,думаю это вам поможет.
redreem
Zombie_Forever
Вот задачка,на решение 5 дней

Если решите в срок ,пойду на пенсию,уступлю место молодым.
Честно,брошу это гиблое дело.


Вот то ,что должно быть в ХТМЛ
Цитата |
<!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 не требую.
Изменения стиля каждого нового окна не требую.
Просю



Спустя 18 часов, 18 минут, 32 секунды (6.06.2012 - 17:01) Zombie_Forever написал(а):

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

Спустя 23 минуты, 24 секунды (6.06.2012 - 17:25) redreem написал(а):
bodja
да какбэ ниче сложного не вижу. просто рутинная возня.
или ты настаиваешь что "будут проблемы"?
да какбэ ниче сложного не вижу. просто рутинная возня.
или ты настаиваешь что "будут проблемы"?

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

У вас пять дней.
Цитата |
настаиваешь что "будут проблемы"? |
Если ты про эти проблемы не знаеш - то они будут.

Сторонних библиотек не применять.
Цитата |
С первым окном тоже всё ясно... Удаление - ясно, а вот со сварачиванием - судя по рисунку можно в низ окна браузера не скидывать, а просто свернуть в шапку окна... - верно ?... |
Да ,просто вниз-вверх.Анимации не требую-типа плавно.
Цитата |
в каком смысле ? - это условие или это высказывание ?... |
Верстка на div - это условие.
Спустя 3 часа, 43 минуты, 23 секунды (6.06.2012 - 22:18) Invis1ble написал(а):
bodja
Цитата |
Сторонних библиотек не применять. |
почему? я считаю, что как раз таки в решении подобных задач библиотеки и следует использовать.
Спустя 15 часов, 19 минут, 2 секунды (7.06.2012 - 13:37) bodja написал(а):
Invis1ble
Эта задачка не на умение пользоватся другими библиотеками,а на умение писать свои ,что бы другие могли пользоватся.
По условиям я думаю вы поняли ,что код должен быть максимально оторван от шаблона,по максиуму не влиять на него своими id class name и небыть зависимым от него его css и версткой,не влиять на другой JS глобальными переменными и небыть зависимым от других библиотек.
Тоесть подключили и с минимальными проблемами поехали,как плагин на квери или других либ
У нее много вариантов решения ,то что будет решена я не сомневаюсь,вопрос в том как она будет решена.
Эта задачка не на умение пользоватся другими библиотеками,а на умение писать свои ,что бы другие могли пользоватся.

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

У нее много вариантов решения ,то что будет решена я не сомневаюсь,вопрос в том как она будет решена.
Спустя 45 секунд (7.06.2012 - 13:38) redreem написал(а):
bodja
т.е. "свои" библы - без проблем?
и еще, давай не 5 дней, а хотябы пара недель. не потому что долго делать, делать - сутки, просто завал работы и надо еще выкроить себе этот чудесный выходной
т.е. "свои" библы - без проблем?

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

Спустя 3 часа, 32 минуты, 19 секунд (7.06.2012 - 17:10) bodja написал(а):
redreem
"Свое" без проблем,
2 недели хорошо,тем более если кто не успеет к тому сроку ,что я выделил,я на пенсию все равно не уйду.
"Свое" без проблем,
2 недели хорошо,тем более если кто не успеет к тому сроку ,что я выделил,я на пенсию все равно не уйду.



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

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



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

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

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

Нужно сделать так ,что бы шаблон оказался на странице и в нем был этот контент.
Это в общем+некоторые детали(подводные камни

Спустя 12 минут, 50 секунд (8.06.2012 - 12:47) redreem написал(а):
ну среду-то надо все таки конкретизировать. что на серверной стороне висит.
Спустя 36 минут, 4 секунды (8.06.2012 - 13:23) bodja написал(а):
На серверной стороне хоть выдача тех же страниц без шаблона,хотя в этом смысла мало,
более полезно держать-писать комменты к страницам ,майл,ограниченый доступ и т.д.
Формат JSON TXT HTML неважно
более полезно держать-писать комменты к страницам ,майл,ограниченый доступ и т.д.
Формат 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, смотрел пару раз фильмы про выход на пенсию, так там вроде как людьми довольно болезненно воспринимается сей факт. "Мамонт" вон вроде с Жераром Депардье, так у чела крышняк конкретно поехал, - прыгнул на байк и поехал куралесить. К чему все это... Просто беспокоюсь, ты морально готов пойти на пенсию или погорячился? 
UPD: http://websyndicate.ru/phpforum/bodja/index.html
полуфабрикат 15-часового кодинга. на шлифовку и подгонку под условия задачи уйдет пара-тройка часов, незнай только есть ли смысл, тыж все равно отмажешься от пенсии
.

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

Спустя 23 часа, 7 минут, 31 секунда (11.06.2012 - 11:20) bodja написал(а):
redreem
Я морально уже готов пойти на пенсию.
Дело в том ,что я хотел достич в веб-программировании,я достиг.
Поэтому я в любом случае уже стою на пороге ,когда задаеш себе вопрос - для чего я шел по этому пути?
Тут или надо делать проект ,который тебе будет приносить пользу,или садится на байк
и забить на это все.
Просто работать на дяду,ну как сказать ,хороших дядь давно разобрали,остались те которые держат прогера за чернорабочего.
Вот такая у меня сейчас "депрессия"
Я морально уже готов пойти на пенсию.
Дело в том ,что я хотел достич в веб-программировании,я достиг.
Поэтому я в любом случае уже стою на пороге ,когда задаеш себе вопрос - для чего я шел по этому пути?
Тут или надо делать проект ,который тебе будет приносить пользу,или садится на байк

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

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

На тех моментах ,которые я ожидал ,что можно споткнутся,ты споткнулся.

Я думаю ,ты на практике понял ,что эта задачка дает просто "иллюзию" простоты.
По коду ничего не могу сказать,там все загадочно завуалировано,
ну а по действиям,достаточно-
1 Открыть одно окно.
2 Открыть второе окно.
3 Закрыть второе окно.
4 Скрипт в полном ступоре.

Окна тоже только захлопываются.
Тоесть видно ,что обьекной модели для каждого окна ты не строил,а зря.
Позже выложу свое ПГ с обьяснениями,сможеш сравнить со своим УГ и сделать выводы.

Спустя 10 минут, 22 секунды (11.06.2012 - 11:30) redreem написал(а):
bodja
Цитата |
Скрипт в полном ступоре. |
Цитата |
на шлифовку и подгонку под условия задачи уйдет пара-тройка часов |
не дописаны пара сценариев событий, вот и ступор. так то я в курсе что там недописано

Цитата |
Тоесть видно ,что обьекной модели для каждого окна ты не строил |
ну смотря что ты вкладываеш в это понятие
Цитата |
там все загадочно завуалировано |
как бэ в общем-то это определенный труд, вот и прогнал через компрессор, чтоб если даже заберут - пусть попыхтят восстанавливая форматирование и смысловые названия идентификаторов, а так - могу тебе скинуть исходник - если интересно (почту в личку).
Спустя 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
Хорошо,работа принята,пошел паковать чемоданы.
Но все таки советую присмотрется к обьектному построению,там можно расширятся за счет наследования,строить отдельные модули за базу всяв эти же окна.
Я себе легко наворотил корзину + пару служебных окон.
Насчет вложености окон как то не подумал,надо будет попробовать.
Хорошо,работа принята,пошел паковать чемоданы.

Но все таки советую присмотрется к обьектному построению,там можно расширятся за счет наследования,строить отдельные модули за базу всяв эти же окна.
Я себе легко наворотил корзину + пару служебных окон.
Насчет вложености окон как то не подумал,надо будет попробовать.
Спустя 2 часа, 14 минут, 54 секунды (11.06.2012 - 23:51) redreem написал(а):
да если честно: я вообще считаю, что подобный интерфейс в рамках сайтов - неуместен. поэтому и не копаю дальше. и не заморачивался особо насчет "перспективы использования".
Спустя 10 часов, 3 минуты, 39 секунд (12.06.2012 - 09:54) Zombie_Forever написал(а):
Мдя... везёт кому-то со свободным временем...- завидую белой завистью...

Спустя 13 минут, 6 секунд (12.06.2012 - 10:07) redreem написал(а):
Zombie_Forever
ну в том-то и прикол, что свободного времени нет. я долго боролся с зудящим желанием "отправить bodja на пенсию", взывая к рассудку и здравому смыслу. ну вот зуд победил
ну в том-то и прикол, что свободного времени нет. я долго боролся с зудящим желанием "отправить bodja на пенсию", взывая к рассудку и здравому смыслу. ну вот зуд победил

Спустя 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 минут смысла нет садится... только раскачаешься и усё, а на следующий день уже и не помнишь до куда раскачался.... Так, что даже если пару часиков есть свободных - это для меня роскошь...