У меня есть поле со списком «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