За последние 24 часа нас посетили 32894 программиста и 1755 роботов. Сейчас ищут 847 программистов ...

Передача массива SELECT'ов

Тема в разделе "PHP для новичков", создана пользователем Denis, 2 сен 2008.

  1. Denis

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

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    Проблема следующая, есть необходимость добавления select'ов, select'ы добавляются и удаляются.
    Скрипт по умолчанию выводит 2 поля select'а
    1) Генеренное одним методом
    2) Генеренное другим методом

    Оба эти поля select'ов в массиве чудесно передаются, но новые добавленные не хотят передаваться, причем через JavaScript копируется генеренный вторым методом select, который напомню передаётся, если кто может помочь буду рад ) Спасибо.


    <tr>
    <td height="25" width="200" bgcolor="#F1F1F1">
    <div align="left">&nbsp;&nbsp;Вид деятельности?(Добавление)</div>
    </td>
    <td height="25" bgcolor="#F1F1F1" width="300" colspan="2">
    <nobr>
    PHP:
    1. <?php $Admin->Ask_Select_Small('activity[]', $sections); ?>
    <input name="drop" type="button" disabled="true" onClick="dropStr(this);" value=" - " class="inpgray">
    &nbsp;<input name="button" type="button" onClick="addStr(this);" value=" + " class="inpgray"></nobr>
    </td>
    </tr>

    PHP:
    1.  
    2. <?php
    3. function Ask_Select_Small($name,$rows) {
    4.     <select class="inpgray" name="<? echo $name?>">    
    5.     foreach ($rows as $id => $caption) {
    6.         echo "<option value='$id'";
    7.         echo ">$caption</option>";
    8.     }
    9.     </select>
    10.  
    11. }
    12. ?>
    13.  
    JavaScript
    [js]function dropStr(btn){
    if(document.getElementById) {
    tr = btn;
    while (tr.tagName != 'TR') tr = tr.parentNode;
    tr.parentNode.removeChild(tr);
    checkForLast();
    }
    }
    function addStr(btn){
    if(document.getElementById) {
    tr = btn;
    k = 0;
    while (tr.tagName != 'TR') {
    tr = tr.parentNode;
    }
    var newTr = tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling);
    checkForLast();
    }
    }
    function checkForLast(){
    btns = document.getElementsByName('drop');
    for (i = 0; i < btns.length; i++){
    btns.disabled = (btns.length == 1) ? true : false;
    }
    }[/js]
     
  2. Denis

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

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    черт не поместился HTML =)

    P.S. Метод Ask_Select_Small норм работает там просто "прозрачный вывод HTML" был
     
  3. Denis

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

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    Что никто не сталкивался? =(