Используйте переключатели, чтобы отключить раскрывающееся меню с помощью цикла Foreach - PullRequest
0 голосов
/ 27 мая 2020

Я работаю над приложением / формой, в которой есть таблица, заполненная из базы данных через foreach l oop с переключателями, один для да, один для нет и раскрывающийся список. Мне это нужно, чтобы при выборе переключателя «Да» dd был отключен, а при выборе «Нет» он был включен. У меня он работает, но он работает только для верхнего ряда, и я не могу предварительно выбрать все переключатели Да. Короче говоря, я не могу понять, как предварительно выбрать все yes rd btns, что, в свою очередь, отключит dd. Любая помощь была бы замечательной. Спасибо.

<?php
            //Foreach loop iterates through each column of $getallrows function
            foreach($allRows as $rowID => $rowInfo){ ?>
              <tr>
                <td><?php echo $rowInfo['fpID'];?></td>
                <td><?php echo $rowInfo['shortTitle'];?></td>
                <td><?php echo $rowInfo['PI'];?></td>
                <td><?php echo $rowInfo['Department'];?></td>
                <td><?php echo $rowInfo['Division'];?></td>
                <td><?php echo $rowInfo['sponsorName'];?></td>
                <td><?php echo $rowInfo['Date_Project_Start']->format('Y-m-d');?></td>
                <td><?php echo $rowInfo['Date_Project_End']->format('Y-m-d');?></td>
                <td><?php echo $rowInfo['fundingType'];?></td>
                //Radio buttons
                <td>Yes<input type="radio" name="rdGrant" value="Yes"  id="rdYes" onclick="disable()" checked="checked"/><br />
                    No<input type="radio" name="rdGrant" value="No" id="rdNo" onclick="enable()"/></td>
                <form action="classes/functions.class.php" method="POST">
                  <input type="hidden" name="id" value="<?php echo $fpID; ?>"/>
                  <td>
                  //Drop down
                    <div class="dropdown">
                      <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" name="ddgrantGroup" id="ddgrantType" data-toggle="dropdown">Select Proper Funding Type
                        <span class="caret"></span>
                      </button>
                      <ul class="dropdown-menu" aria-labelledby="ddgrantType">
                        <li><a data-value="Corporate Sponsor">Corporate Sponsor</a></li>
                        <li><a data-value="Federal">Federal</a></li>
                        <li><a data-value="Foundation Selected">Foundation Selected</a></li>
                        <li><a data-value="Internally Funded">Internally Funded</a></li>
                        <li><a data-value="State/Local">State/Local</a></li>
                      </ul>
                    </div>
                  </td>
                  <td>
                    <div class="update">
                      <!-- <a href="index.php?edit=<?php echo $rowInfo['fpID']; ?>" class="btn btn-success">Update and Save</a> -->
                      <button type="submit" class="btn btn-success" name="Update">Update and Save</button>
                    </div>
                  </td>
                  <td>
                    <div class="comment">
                      <textarea class="form-control" aria-label="With textarea" id="grantComment" placeholder="Comments"></textarea>
                      <button type="submit" class="btn btn-success" name="updateComm">Add Comments</button>
                      <!-- <a href="index.php?edit<?php echo $rowInfo['fpID']; ?>" class="btn btn-success">Add Comment</a> -->
                    </div>
                  </td>
              </form>
              </tr>
            <?php } ?>
          </tbody>

Функция за переключателями, отключение / включение dd.

function disable() {
document.getElementById("ddgrantType").disabled=true;

} function enable() { document.getElementById("ddgrantType").disabled=false; }

1 Ответ

0 голосов
/ 27 мая 2020

Вы должны использовать динамический c селектор (class / id) для вашей кнопки вместо постоянного идентификатора # ddgrantType.

Попробуйте что-нибудь вроде этого -

        <?php $dynamic_id = 'ddgrantType_'.$rowInfo['fpID'];?>
        <td>Yes<input type="radio" name="rdGrant" value="Yes"  id="rdYes" onclick="disable('<?php echo $dynamic_id;?>')" checked="checked"/><br />
            No<input type="radio" name="rdGrant" value="No" id="rdNo" onclick="enable('<?php echo $dynamic_id;?>')"/></td>
        <form action="classes/functions.class.php" method="POST">
          <input type="hidden" name="id" value="<?php echo $fpID; ?>"/>
          <td>
          //Drop down
            <div class="dropdown">
              <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" name="ddgrantGroup" id="<?php echo $dynamic_id;?>" data-toggle="dropdown">Select Proper Funding Type
                <span class="caret"></span>
              </button>
              <ul class="dropdown-menu" aria-labelledby="ddgrantType">
                <li><a data-value="Corporate Sponsor">Corporate Sponsor</a></li>
                <li><a data-value="Federal">Federal</a></li>
                <li><a data-value="Foundation Selected">Foundation Selected</a></li>
                <li><a data-value="Internally Funded">Internally Funded</a></li>
                <li><a data-value="State/Local">State/Local</a></li>
              </ul>
            </div>
          </td>



  <script>
    function disable(btn_id) {
      document.getElementById(btn_id).disabled=true;
    }

    function enable(btn_id) {
      document.getElementById(btn_id).disabled=false;
    }
  </script>  
...