#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