проверить выпадающий список, переданный с php на html с помощью javascript?

#php #javascript #mysql #html #forms

#php #javascript #mysql #HTML #формы

Вопрос:

итак, название этого вопроса может быть немного запутанным, и я попытаюсь объяснить это вам: у меня есть php-файл с массивом, содержащим несколько полей формы, подобных этому:

 $var = array(0 => '<input type=....>', 1=> '<input type=....>');
  

и я создал цикл while для перебора массива, чтобы отобразить их в таблице, что-то вроде этого:

 echo '<table>';
  while($row = mysql_fetch_array($result)){
    $num = $row['fieldId'];
    $field = $num.' '.$row['field'];
    echo '<tr><td>'.$field.'</td>';
    echo '<td>'.$var[$q].'</td></tr>';
    echo '<tr><td>amp;nbsp;</td></tr>';
    $q  ;
  }; echo '</table>';
  

я включил этот php-файл в html-файл, чтобы получить таблицу с двумя столбцами: первый с $field из базы данных, а второй с $var [$ q], который является некоторым полем ввода, взятым из массива $ var.
Хотите верьте, хотите нет, это действительно работает, теперь проблема в том, что внутри этого массива $ var у меня есть <select> поле с несколькими параметрами, я хочу проверить это поле с помощью некоторого javascript, но по какой-то причине я не могу получить присвоенные значения <option value="SOMEVALUE"> . я не знаю, почему, но я не могу, одинчто мне показалось странным, так это то, что в этом массиве $ var у меня есть несколько переключателей, которые я МОГУ проверить с помощью javascript.

дополнительная информация: html-файл, который включает php-файл, имеет следующее:

 <html>....
<form name="mainForm">
  <?php
    include 'myPhpFile.php';
  ?>
  <input type="button" name="btnNext" onclick="functionToValidate();">
</form>
...</html>
  

итак, в основном, когда я включаю свой php-файл, он создает таблицу и добавляет в нее поля, заполняя их данными из базы данных mysql и некоторыми полями ввода, используя массив $ var, показанный выше
, все это работает, но проблема в том, что когда я нажимаю кнопку next, он вызывает функцию javascript для проверки полей,все работает, пока не дойдет до <select> ввода,
я могу проверить переключатели, текстовые поля и текстовые области, но я не могу их проверить <select>

это функция javascript, которую я использую:

 function myFunctionNameHere(){
if(!document.mainForm.p1_1[0].checked amp;amp; !document.mainForm.p1_1[1].checked)
      alert("1 - some warning here");
    else if(!document.mainForm.p1_2[0].checked amp;amp; !document.mainForm.p1_2[1].checked)
      alert("2 - some warning here");
    else if(!document.mainForm.p1_3[0].checked amp;amp; !document.mainForm.p1_3[1].checked)
      alert("3 - some warning here");
    else if(!document.mainForm.p1_4[0].checked amp;amp; !document.mainForm.p1_4[1].checked)
      alert("4 - some warning here");
    else if(!document.mainForm.p1_5[0].checked amp;amp; !document.mainForm.p1_5[1].checked)
      alert("5 - some warning here");
    else if(!document.mainForm.p1_6[0].checked amp;amp; !document.mainForm.p1_6[1].checked)
      alert("6 - some warning here");
    else if(document.mainForm.p1_7.value == "")
      alert("7 - some warning here");
    // this condition does not work:
    else if(document.mainForm.p1_8.selectedIndex == 0)
      alert("8 - some warning here);
   // can't get the selectd field from the html select field
    else
      window.location = "OTHERPAGE.html";
}
  

это в значительной степени то, что делает функция, все условия работают, за исключением того, к которому я добавляю комментарии. (я все еще учусь, поэтому не смейтесь над моим кодом … пожалуйста.)

Извините, я действительно решил эту проблему, в html-коде из моего php-массива были некоторые ошибки. Теперь это действительно работает. Спасибо.

Комментарии:

1. Не могли бы вы опубликовать проанализированный код проблемного элемента select?

2. Вы получаете тег выбора по идентификатору или используете какую-то магию jquery? (если вы опубликуете какой-нибудь код, было бы полезно)

3. Если проблема заключается в проверке javascript, вы можете опубликовать код этого.

4. Это не имеет ничего общего с PHP. Разместите где-нибудь полную страницу и дайте нам на нее посмотреть.

Ответ №1:

вот как вы получаете доступ к значениям выбора в javascript:

 <form name="mainform">
    <select name="dropbox_select">
        <option value="value0">option0</option>
        <option value="value1">option1</option>
        <option value="value2">option2</option>
    </select>
</form>

document.forms.mainform.dropbox_select.options[0].value
document.forms.mainform.dropbox_select.options[1].value
document.forms.mainform.dropbox_select.options[2].value