Получить значение выбранной опции из выпадающего списка в том же файле в php? - PullRequest
0 голосов
/ 08 июня 2011

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

<?php
mysql_connect("localhost", "root", "") or die("Connection Failed");
mysql_select_db("pet")or die("Connection Failed");
$query = "SELECT distinct insti_name FROM maininfo";
$result = mysql_query($query);




$query2 = "SELECT distinct insti_name FROM maininfo";
$result2 = mysql_query($query2);

?>
<form name="myform" id="one" method="post" action="compare.php">
Select first college: 
<select name="coll1">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['insti_name'];?>"> <?php echo $line['insti_name'];?>
</option>

<?php
}
?>
</select>
<br /><p>Select the branch:


<select name="brn1">

<option value="0" selected>(please select:)</option>
<option value="ce">Civil</option>
<option value="cse">Computer Science Engineering</option>
<option value="ec">Electronics and Communication</option>
<option value="it">Information Technology</option>
<option value="aeie">AEIE</option>
<option value="mech">Mechanical</option>
<option value="elect elex">Elect Elex</option>
<option value="ee">Electricals</option>
<option value="el">EL</option>
<option value="chem">Chemical</option>
<option value="fire">Fire</option>
<option value="ei">ei</option>
<option value="food">Food</option>
<option value="ip">Information Practises</option>
<option value="bt">Bio Technology</option>

</select>


<br>
<hr width=100% height=4>

Select second college: 
<select name="coll2">
<?php
while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['insti_name'];?>"> <?php echo $line['insti_name'];?>
</option>

<?php
}
?>


</select>


<br /><p>Select the branch:
<select name="brn2">
<option value="0" selected>(please select:)</option>
<option value="ce">Civil</option>
<option value="cse">Computer Science Engineering</option>
<option value="ec">Electronics and Communication</option>
<option value="it">Information Technology</option>
<option value="aeie">AEIE</option>
<option value="mech">Mechanical</option>
<option value="elect elex">Elect Elex</option>
<option value="ee">Electricals</option>
<option value="el">EL</option>
<option value="chem">Chemical</option>
<option value="fire">Fire</option>
<option value="ei">ei</option>
<option value="food">Food</option>
<option value="ip">Information Practises</option>
<option value="bt">Bio Technology</option>

</select>
<br><br>
<input type="submit" name="Submit" value="Compare Colleges" >
</form>

Ответы [ 5 ]

1 голос
/ 08 июня 2011

Запомните различие между PHP (работающим на сервере) и клиентом (именно там будут работать такие вещи, как Javascript).

То, что вам нужно, это один из двух методов: во-первых, вы можете предварительно заполнить все ветви, доступные для данного колледжа, и на клиенте иметь сценарий, который выполняется при смене колледжа, который будет изменить представленный набор веток. Обратите внимание, что это включает в себя получение всех ветвей для всех колледжей заранее.

Во-вторых, у вас может быть сценарий, который при изменении колледжа запрашивает у сервера поддерживаемые ветви и изменяет представленные ветви. Этот способ требует гораздо меньше предварительной обработки и обычно называется решением AJAX.

Обратите внимание, что оба способа включают в себя написание некоторого Javascript, который будет работать на клиенте в ответ на изменения в колледже.

0 голосов
/ 08 июня 2011

Я бы использовал ajax, если ваши списки огромны.

Если нет, вы можете предварительно заполнить массив в Javascript и изменить параметры на onchange.

0 голосов
/ 08 июня 2011

Для чего-то подобного вам придется либо внедрить решение AJAX, которое динамически обновляет страницу, либо вам нужно будет ПОСТАВИТЬ значение «College» обратно на вашу страницу и… (я сижу здесь, набираюэтот и три новых ответа были только что опубликованы ...?) ... запросить вашу базу данных на основе колледжа.

0 голосов
/ 08 июня 2011

Я постараюсь ответить.

Если вы хотите использовать JavaScript, взгляните, в частности, на jQuery:http://api.jquery.com/change/
В противном случае, чтобы сделать это с помощью PHP, насколько я знаю, вам придется отправить форму и обновить страницу.Что, вероятно, не то, что вы хотите.Вы можете использовать PHP / ajax / json, но если вы можете это сделать, вы также можете использовать JavaScript напрямую.jQuery должен облегчить задачу, возможно, есть даже специальный плагин.

0 голосов
/ 08 июня 2011

Как примечание, это лучший пользовательский опыт, если он сделан с AJAX. Тем не менее, вам необходимо настроить форму для отправки на замену вашего поля выбора колледжа. Затем в вашем PHP нужно сделать:

if( isset( $_POST['coll1'] ) ) {
    //query your branches and populate select same as you did for colleges.
    //e.g. "SELECT * FROM Branches WHERE CollegeId=".mysql_real_escape_string($_POST['coll1']);
}

Достаточно ли информации для работы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...