2013-08-16 23 views
4

我有一个名为“Make”的组合框。在该组合框中,我正在加载车辆制造商名称。当我点击搜索按钮时,我想显示所选的制造商名称。以下是我的HTML代码的一部分。PHP代码获取组合框的选定文本

<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; 
    } 
?> 

如果我从组合框中选择丰田,然后按下搜索按钮,我得到的答案是'2'。这意味着它给了我'丰田'的价值。但我想显示“丰田”这个名字。我怎样才能做到这一点?请帮我....

+0

取值=“丰田” –

回答

0

更改您选择值对话框选项:

<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> 

关于PHP文件:

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

是不是有任何其他方式来获得制造商的名称,而不改变html的价值。因为我从数据库表中加载这些值。在他们我把这个值属性的主键。 – user2234558

+0

@ user2234558是的,您可以使用选项值中的键添加值,然后在PHP代码中将其分解。 –

+0

@ user2234558我已经编辑了复杂的已发布答案。 –

4

放置任何你想发送到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']]; 
+0

这并不令人满意。我真的很想知道可能的后期输入值和文本吗?没有JS只是PHP – Bora

1

可以实现这一目标与创建新的数组:

<?php 
$array = array(1 => "Toyota", 2 => "Nissan", 3 => "BMW"); 

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

如果从数据库中获取它,然后

<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> 
5

尝试与此有关。您将获得$ _ POST选择框中的值“制作”]和名称将获得$ _ 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; 
} 
?> 
相关问题