[JavaScript, AJAX] Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 9 Jun 2007.

Thread Status:
Not open for further replies.
  1. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    А нельзя дать единый id и обращаться по нему?
     
  2. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12


    я не очень понял обращение вида document.form но думаю ты хотел это сделать...
     
    1 person likes this.
  3. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    Mixon, премного благодарен ;)

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

    прилагаю полный код

    Code:
    <html><head><link rel="stylesheet" type="text/css" href="style.css" /><title>Test page</title></head> <body>
    <script language='javascript'> 
    var i; 
    var _tmp;
    var code; 
    var opt = new Array(); 
    var num = new Array('','one','two','three','four','five','six','seven','eight'); 
    for (i=1;i < num.length;i++){ 	 
    	opt[num[i]] = 0; 
    } 
    function test(obj) {  	
    if (opt[obj.name] != 0) { 		
    code = '_tmp.options[_tmp.options.length] = new Option(num[opt[obj.name]], opt[obj.name])'; 
    } else {  		
    code = '_tmp.remove(obj.value)'; 
    } 		 	
    for (i = 1;i<num.length;i++) {
    eval('_tmp=document.form.'+num[i]); 
    if (_tmp != obj) { 		
    	eval(code); 
    } 	
    } 	
    opt[obj.name] = obj.value;
    } 	 </script> <form name='form' method='POST'> <table> <tr><td><select name='one' onchange='javascript:test(this);'> <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td> 	<td><select name='two' onchange='javascript:test(this);'> 				
    <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td></tr> <tr><td><select name='three' onchange='javascript:test(this);'> 				
    <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td> 	<td><select name='four' onchange='javascript:test(this);'> 				
    <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td></tr> <tr><td><select name='five' onchange='javascript:test(this);'> 				
    <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td> 	<td><select name='six' onchange='javascript:test(this);'> 				
    <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td></tr> <tr><td><select name='seven' onchange='javascript:test(this);'> 				
    <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td> 	<td><select name='eight' onchange='javascript:test(this);'> 				
    <option value='0'>---</option> 				
    <option value='1'>One</option> 				
    <option value='2'>Two</option> 				
    <option value='3'>Three</option></select></td></tr></table> <input type='submit'></form> </body></html>
     
    #2523 PenSpinner, 7 Aug 2010
    Last edited: 7 Aug 2010
  4. Adio

    Adio Elder - Старейшина

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Есть код на JS

    Code:
    <script type='text/javascript'>
    var lastID = 0;
    function SelectImg(id) {
    if (lastID > 0) {
    
    }
    
    document.getElementById(0).src = document.getElementById(id).src;
    lastID = id;
    }
    function LoadTrigger() {
    SelectImg(1);
    }
    window.onload = LoadTrigger;
    </script>
    
    Вообщем проблема в том что он в хедере - и выдает ошибку object null в IE6 если я не нахожусь на той страницы для которой он предназначен.

    Как мне убрать ошибку :? т.е что бы IE6 не показывал возврат NULL ?

    он ругаеться на эту строку

    Code:
    var lastID = 0;
    
     
  5. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    брр,у тя вовсе странная реализация,вот что я на клацал))
    [​IMG]
    Ты роспеши в Точности,что нужно чтобы было,при выборе какого пункта - какой должен пропасть а какой появится...потому как из-за этих багов - фиг чего понятно(
    + ты пиши с расчётом,что на стороне Сервера - тебе каждый пункт проверить прийдётся)) потому-как данные отправление мона свободном подменять)
     
  6. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    мне нужно, чтобы было
    то есть один, два или три можна выбрать только раз во всей форме.

    ты прав, хрень какая-то получилась :confused:

    направь меня в правильную сторону :), желательно с примерами :p
     
  7. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Adio, id не может начинаться на цифру. Браузеры проглотят, но делать так не стоит.

    Code:
    if (lastID > 0) {
    
    }
    Что это? Зачем это?:) Где то, что будет выполняться, если lastID > 0 ? Да и как lastID может быть больше нуля, если ты строчкой выше объявил его нулём :)
    Ты бы кусок кода побольше скинул, не совсем понятно, что должно быть-то в итоге.
     
  8. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Правильная сторона,это jQuery))

    Ну так смотри,ты говоришь чтобы 1 2 и 3 можно было во всей форме выбрать только,то есть?
    в одном селекторе 1 из 3х вариантов
    или чтобы только 3 варианта из всех 8 форм?
    т.е. только три формы вовсе могут быть заданы,в нашем случае?
     
  9. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    да. остальное - вариант "---"
     
  10. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    окэ)
    по утру по мучу что-то,а этих селектов должно быть 8,так?
     
  11. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    помогите составить JS скрипт:
    Которому передается unix время и он его разделяет на часы минуты и секунды и отсчитывает в обратную сторону, когда время заканчивается то обновляется страница
     
  12. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    отсчитывается?
    т.е. передается время В перед на сколько секунд мотать?
    если да - зачем тогда тебе переводить в мынуты и т.д,и вобще, зачем тогда юникс?

    передали-бы просто 100 секунд допустим,скрипт к нынешнему времени додаст 100 сек,и поставить
    setTimeout('document.location.href=document.location.href',100);

    а отсчёт сделать или эти 100 сек,или через data пробовать что-то более соуродить
     
  13. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Немного не понял, зачем "скрипт к нынешнему времени додаст 100 сек" :)
    А так - всё абсолютно верно. Передаём количество секунд и через setTimeout выполняем переход по ссылке.
    unixtime и есть секунды, переводить их куда-то смысла нет :) Либо вычисляем разность двух unixtime, чтоб узнать количество секунд, либо же передаём скрипту уже нужное количество.

    Или же у тебя, HTL, какая-то нетривиальная задача?
     
  14. metaxa

    metaxa New Member

    Joined:
    19 Mar 2009
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Добрый день! Подскажите плиз...
    Вот нужен скрипт, чтоб я мог установить его в нужном месте на сайте (на разных страницах), а он отображал топределённый текст или набор ссылок..

    Ну т.е. чтоб мне не редактировать все страницы сайта, а где-то что-то поменять
     
  15. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    да. спасибо
     
  16. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Code:
    <style>
    SELECT{
    width:150px;
    }
    </style>
    <select id="sel1"></select>
    <select id="sel2"></select>
    <br>
    <select id="sel3"></select>
    <select id="sel4"></select>
    <br>
    <select id="sel5"></select>
    <select id="sel6"></select>
    <br>
    <select id="sel7"></select>
    <select id="sel8"></select>
    
    <script>
    var selected = {
        One: [false, -1],
        Two: [false, -1],
        Three: [false, -1]
    };
    
    function recreate(sel, id) {
        if (sel.value == 0) {
    
            if (selected['One'][1] == id) {
                selected['One'] = [false, -1];
            }
            if (selected['Two'][1] == id) {
                selected['Two'] = [false, -1];
            }
            if (selected['Three'][1] == id) {
                selected['Three'] = [false, -1];
            }
    
        } else {
            selected[sel.value] = [true, id];
        }
        select();
    }
    
    function select() {
        for (var i = 1; i < 9; i++) {
            var _tmp = document.getElementById('sel' + i);
            _tmp.innerHTML = '<option value="0" onclick="recreate(this,' + i + ')">---</option>';
            if (!selected['One'][0]) {
                _tmp.innerHTML += '<option value="One" onclick="recreate(this,' + i + ')">One</option>';
            } else if (selected['One'][1] == i) {
                _tmp.innerHTML += '<option value="One" onclick="recreate(this,' + i + ')" selected="selected">One</option>';
            }
            if (!selected['Two'][0]) {
                _tmp.innerHTML += '<option value="Two" onclick="recreate(this,' + i + ')">Two</option>';
            } else if (selected['Two'][1] == i) {
                _tmp.innerHTML += '<option value="Two" onclick="recreate(this,' + i + ')" selected="selected">Two</option>';
            }
            if (!selected['Three'][0]) {
                _tmp.innerHTML += '<option value="Three" onclick="recreate(this,' + i + ')">Three</option>';
            } else if (selected['Three'][1] == i) {
                _tmp.innerHTML += '<option value="Three" onclick="recreate(this,' + i + ')" selected="selected">Three</option>';
            }
        }
    }
    
    select();
    </script>
    Так?
     
  17. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Требуется переводить время для его отображение на странице
     
  18. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,691
    Likes Received:
    3,145
    Reputations:
    236
    JS convert time to words - Google.
     
  19. PenSpinner

    PenSpinner Member

    Joined:
    9 Dec 2008
    Messages:
    51
    Likes Received:
    5
    Reputations:
    0
    огромное спасибо. почти :)
    выделенный вариант можно изменить только на "---". то есть если я выбрал "два", то не могу изменить выбор на "три", например, при том что оба варианта свободны
     
  20. Mixon

    Mixon Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    А смысл от такого? по выбору --- потом он снова сможет выбрать вариант,а если нет - то после F5 - точно... тем-более смысл от этого не вижу,выбирешь ошибочно,а изменить - фигу..
     
Thread Status:
Not open for further replies.