За последние 24 часа нас посетили 17164 программиста и 1248 роботов. Сейчас ищут 984 программиста ...

Перенос из одного поля OPTION в другое поле OPTION

Тема в разделе "JavaScript и AJAX", создана пользователем maksia, 8 июн 2007.

  1. maksia

    maksia Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Москва
    Столкнулся с проблемой и никак не могу ее решить своими силами. Есть два поля Option, одно пустое второе со значениями. Между этими полями две кнопки со стрелками которые позволяют перекидывать значения из одного поля в другое. Данные из этой формы передаются скрипту PHP, но он не принимает значения из этих полей. Что нужно сделать чтобы данные из полей Option уходили скрипту PHP? Может есть какие нибудь другие варианты решения данной задачи?

    Вот код страницы:
    Код (Text):
    1.  
    2. <html>
    3. <head>
    4. <title>Перенос из одного поля OPTION в другое поле OPTION.</title>
    5. <SCRIPT language=JavaScript>
    6. function move(fbox,tbox)  {
    7. for(var i=0; i<fbox.options.length; i++)  {
    8.   if(fbox.options[i].selected && fbox.options[i].value != "")  {
    9.      // Add Option to tbox
    10.      var no = new Option();
    11.      no.value = fbox.options[i].value;
    12.      no.text = fbox.options[i].text;
    13.      tbox.options[tbox.options.length] = no;
    14.      //  Clear option in fbox
    15.      fbox.options[i]=null;
    16.   i--;
    17.      }  }
    18.    SortD(tbox);
    19. }
    20. function SortD(box)  {
    21.   var temp_opts = new Array();
    22.   var temptxt = new Object();
    23.   var tempval = new Object();
    24.   // Load temp array
    25.   for(var i=0; i<box.options.length; i++)  {
    26.     temp_opts[i] = box.options[i];
    27.   }
    28.   //sort temporary
    29.   for(var x=0; x<temp_opts.length-1; x++)  {
    30.     for(var y=(x+1); y<temp_opts.length; y++)  {
    31.       if(temp_opts[x].text > temp_opts[y].text)  {
    32.         temptxt = temp_opts[x].text;
    33.         temp_opts[x].text = temp_opts[y].text;
    34.         temp_opts[y].text = temptxt;
    35.  
    36.   tempval = temp_opts[x].value;
    37.         temp_opts[x].value = temp_opts[y].value;
    38.         temp_opts[y].value = tempval;
    39.  
    40.       }  }  }
    41.   for(var i=0; i<box.options.length; i++)  {
    42.     box.options[i].value = temp_opts[i].value;
    43.     box.options[i].text = temp_opts[i].text;
    44.   }}
    45. function Select(box)  {
    46.   for(var i=0; i<box.options.length; i++)  {
    47.     box.options[i].selected = true;
    48.   }}
    49. </SCRIPT>
    50. </head>
    51. <body>
    52. <table><tr><td><em>Список в форме отсортирован по имени<br>
    53. Используйте Shift и Ctrl при выделении</em></td>
    54. <td>
    55. <FORM action="file.php" method="post">
    56. <TABLE border=0>
    57. <TR>
    58. <TD>
    59. Люблю:<br>
    60. <SELECT name="list1" size="10">
    61. <OPTION value=1>ветер</OPTION>
    62. <OPTION value=2>дождь</OPTION>
    63. <OPTION value=3>ливень</OPTION>
    64. <OPTION value=4>мороз</OPTION>
    65. <OPTION value=5>наводнение</OPTION>
    66. <OPTION value=6>снег</OPTION>
    67. <OPTION value=7>тепло</OPTION>
    68. <OPTION value=8>ураган</OPTION>
    69. <OPTION value=9>холод</OPTION>
    70. </SELECT>
    71. </TD>
    72. <TD>
    73.  <br>
    74.   <br>
    75. <INPUT name="B1" onclick="move(this.form.list1,this.form.list2)" type="button" value="->"><BR>
    76. <INPUT name="B2" onclick="move(this.form.list2,this.form.list1)" type="button" value="<-">
    77. </TD>
    78. <TD>Не люблю:<br>
    79. <SELECT name="list2" size="10">
    80. </SELECT>
    81. </TD>
    82. </TR>
    83. </TABLE>
    84. </FORM>
    85. </td>
    86. </tr>
    87. </table>
    88. </body>
    89. </html>
     
  2. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    угу вставь скрипт который помечает все поля как выбранные...

    [js]function selectALL(){
    mSelect=document.getElementsById('list1');
    for(sSel in mSelect){
    if(typeof(mSelect[sSel])=='object'){
    if(mSelect[sSel].multiple){
    for(var tO=0;tO<mSelect[sSel].length;tO++){
    mSelect[sSel].options[tO].selected=true;
    }
    }
    }
    }
    }
    [/js]

    соответственно
    HTML:
    1.  
    2. <SELECT multiple name="list1[]" id="list1" > ....
    3.  
     
  3. maksia

    maksia Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    45
    Симпатии:
    0
    Адрес:
    Москва
    Если не трудно напишите пожалуйста как будет полностью выглядеть код страницы после вставки этой функции, а то я в javascript не силен совсем.