2012-01-27 2 views
1

Я хотел бы знать, как отправить два выпадающих меню без кнопки отправки. Я хочу заполнить второе выпадающее меню при выборе первого, а затем отобразить выбор второго выпадающего меню. Данные для второго выпадающего меню получают из базы данных mySQL. Я использую две формы на своей странице, по одной для каждого выпадающего меню.2 выпадающих меню без кнопки отправки

<form method="post" id="typeForm" name="typeForm" action=""> 
      <select name="filterType" onchange="document.getElementById('typeForm').submit()"> 
        <option <?php if ($_POST['filterType'] == 'none') print 'selected '; ?> value="none">Filter by...</option> 
        <option <?php if ($_POST['filterType'] == 'employee') print 'selected '; ?> value="employee">Employee</option> 
        <option <?php if ($_POST['filterType'] == 'taskName') print 'selected '; ?> value="taskName">Task</option> 
      </select> 
      <noscript><input type="submit" value="Submit"/></noscript> 
    </form> 
    <form method="post" id="categoryForm" name="typeForm" action=""> 
      <select name="filterCategory" onchange="document.getElementById('categoryForm').submit()"> 
        <option <?php if ($_POST['filterCategory'] == 'none') print 'selected '; ?> value="none"></option> 
        <? 
         $count2 = 0; 
         echo $rowsAffected2; 
         while ($count2<$rowsAffected2) { 
          echo "<option value='$filterName[$count2]'>$filterName[$count2]</option>"; 
          $count2 = $count2 + 1; 
         } 
        ?> 
      </select> 
      <noscript><input type="submit" value="Submit"/></noscript> 
    </form> 

Я могу представить первый форму без проблем. Он извлекает значения во второе раскрывающееся меню успешно. Но при выборе значения из второго меню страница обновляется, и у меня остаются два невыпадающих выпадающих меню. Я попытался повторить $ _POST ['filterCategory'] и не получил результата. Я попытался использовать onchange = "this.form.submit();" в обеих формах, и я все равно получаю тот же результат. Есть ли способ сделать это без использования AJAX, JQuery или любого сложного сценария Javascript? Я требую этого полностью в PHP.

Я хочу избежать второго обновления, но все же смогу собрать данные $ _POST [''] из второго выбора.

ответ

1

используйте тот же бланк для обоих вариантов

+0

Хорошо, но мне требуется значение столбца из обеих форм. Как это получить? Что я делаю, я проверяю опубликованное значение первого выпадающего меню и заполняю второй снимок на основе этого значения из базы данных mySQL. И надеемся выдать данные, выбранные из второго выпадающего меню. –

+0

Спасибо за совет. Это сработало, но просто нужно еще несколько настроек, чтобы сделать его идеальным. –

+0

Вы приветствуете ... – machineaddict

1

У вас есть два способа сделать это.
Вы можете отправить форму через AJAX; что предотвратит обновление всей страницы и, следовательно, потерю данных в обоих элементах выбора; это также самый крутой способ сделать это.
OR
Используя единую форму, когда представлены как первый, так и второй элементы выбора, используйте их значения для повторного создания элементов выбора.
Более чистый способ сделать это по-прежнему является первым вариантом; по крайней мере, это то, что я буду использовать, если я должен это сделать.

+0

Я спросил об этом в то время, когда вызов AJAX был похож на изучение другого языка для меня. Возможно, я пару дней посещал PHP. Плюс я попросил сделать это без использования AJAX, JQuery или любого сложного сценария Javascript. Но да, AJAX - это правильный путь в любом другом случае. –

+0

Приятно, что вы сейчас ниндзя PHP :-). Если мой ответ имеет смысл, дайте ему оценку. :-) –

Смежные вопросы