PHP-код для получения выделенного текста комбинированного блока

У меня есть поле со списком «Make». В этом поле со списком я загружаю названия производителей автомобилей. Когда я нажимаю кнопку SEARCH, я хочу отобразить выбранное имя производителя. Ниже приведена часть моего кода HTML.

<label for="Manufacturer"> Manufacturer : </label> <select id="cmbMake" name="Make" > <option value="0">Select Manufacturer</option> <option value="1">--Any--</option> <option value="2">Toyota</option> <option value="3">Nissan</option> </select> <input type="submit" name="search" value="Search"/> 

Ниже мой PHP-код до сих пор я сделал.

  <?php if(isset($_POST['search'])) { $maker = mysql_real_escape_string($_POST['Make']); echo $maker; } ?> 

Если я выберу Toyota из поля со списком и нажмите кнопку SEARCH, я получаю ответ как «2». Это означает, что это дает мне ценность «Тойоты». Но я хочу показать название «Тойота». Как я могу это сделать? Пожалуйста, помогите мне ….

Попробуйте это. Вы получите значение поля выбора в $ _POST ['Make'], и имя получит $ _POST ['selected_text']

 <form method="POST" > <label for="Manufacturer"> Manufacturer : </label> <select id="cmbMake" name="Make" onchange="document.getElementById('selected_text').value=this.options[this.selectedIndex].text"> <option value="0">Select Manufacturer</option> <option value="1">--Any--</option> <option value="2">Toyota</option> <option value="3">Nissan</option> </select> <input type="hidden" name="selected_text" id="selected_text" value="" /> <input type="submit" name="search" value="Search"/> </form> <?php if(isset($_POST['search'])) { $makerValue = $_POST['Make']; // make value $maker = mysql_real_escape_string($_POST['selected_text']); // get the selected text echo $maker; } ?> 

Поместите все, что вы хотите отправить на PHP в атрибуте value .

  <select id="cmbMake" name="Make" > <option value="">Select Manufacturer</option> <option value="--Any--">--Any--</option> <option value="Toyota">Toyota</option> <option value="Nissan">Nissan</option> </select> 

Вы также можете опустить атрибут value . По умолчанию используется текст.

Если вы не хотите изменять HTML, вы можете поместить массив в ваш PHP для преобразования значений:

 $makes = array(2 => 'Toyota', 3 => 'Nissan'); $maker = $makes[$_POST['Make']]; 

Вы можете добиться этого, создав новый массив:

 <?php $array = array(1 => "Toyota", 2 => "Nissan", 3 => "BMW"); if (isset ($_POST['search'])) { $maker = mysql_real_escape_string($_POST['Make']); echo $array[$maker]; } ?> 

если вы извлекаете его из базы данных, тогда

 <select id="cmbMake" name="Make" > <option value="">Select Manufacturer</option> <?php $s2="select * from <tablename>"; $q2=mysql_query($s2); while($rw2=mysql_fetch_array($q2)) { ?> <option value="<?php echo $rw2['id']; ?>"><?php echo $rw2['carname']; ?></option><?php } ?> </select> 

Измените значение опций выбора блока:

 <select id="cmbMake" name="Make" > <option value="">Select Manufacturer</option> <option value="Any">--Any--</option> <option value="Toyota">Toyota</option> <option value="Nissan">Nissan</option> </select> 

Вы не можете получить текст выбранной опции в php. он даст только значение выбранного параметра.

Редакция:

 <select id="cmbMake" name="Make" > <option value="0">Select Manufacturer</option> <option value="1_Any">--Any--</option> <option value="2_Toyota">Toyota</option> <option value="3_Nissan">Nissan</option> </select> 

ON php file:

 $maker = mysql_real_escape_string($_POST['Make']); $maker = explode("_",$maker); echo $maker[1]; //give the Toyota echo $maker[0]; //give the key 2