获取选择的值


Geting the value of selecting dropdown

试图获取下拉菜单的值

<select id="utype" class="text" style="width:100%;padding:10px !important" name="user-type">
     <option value="default">Select </option>
     <option value="passenger">Passenger</option>
     <option value="driver">Driver</option>
</select>

但总是将driver值插入到db中,即使passenger被用户选择

if (isset($_POST['submit'])) {
     $date = date('Y-m-d');
     $full_name = mysql_real_escape_string(addslashes($_REQUEST['fname']));
     $email_address = mysql_real_escape_string(addslashes($_REQUEST['email']));
     $pass = mysql_real_escape_string(addslashes($_REQUEST['password']));
     $contact_no = mysql_real_escape_string(addslashes($_REQUEST['mobile']));
     $usertype = mysql_real_escape_string(addslashes($_REQUEST['user-type']));
}

我也试图在以下3种方式获得用户类型值,但仍然只有驱动程序值插入到DB。

1.$usertype = mysql_real_escape_string($_POST['user-type']);
2.$usertype= isset($_POST['user-type']) ? mysql_real_escape_string($_POST['user-type']) : '';
3.$usertype=$_POST['user-type'];

即使我修改了用户类型,如$usertype = 'passenger';$usertype .driver被插入到db中下面是完整的PHP文件

<?php
     include ('../includes/include_files.php');
     $msg = "";

 /* ----ON SUBMIT------ */

if (isset($_POST['submit'])) {
$date = date('Y-m-d');
$full_name = mysql_real_escape_string(addslashes($_REQUEST['fname']));
$email_address = mysql_real_escape_string(addslashes($_REQUEST['email']));
$pass = mysql_real_escape_string(addslashes($_REQUEST['password']));
$contact_no = mysql_real_escape_string(addslashes($_REQUEST['mobile']));
$usertype = 'passenger';
// $usertype = mysql_real_escape_string($_POST['user-type']);
//$usertype= isset($_POST['user-type']) ?    mysql_real_escape_string($_POST['user-type']) : '';
//$usertype=$_POST['user-type'];
// $( "#utype" ).val();
// $("#elementId").val();
if($usertype='driver'){
    $status='Inactive';
}
else
{
    $status="Active";
}
if ($full_name != "" && $email_address != "" && $pass != "" && $contact_no != "" && $usertype != "") {
    $checkinfo = mysql_query("select * from tbl_user where email='" . $_POST['email'] . "' ");
    $count_email = mysql_num_rows($checkinfo);
    if ($count_email == 0) {
        $reg_ins = mysql_query("insert into tbl_user(`fullname`, `email`, `password`, `mobile`, `usertype`,`add_date`, `status` ) values ('$full_name','$email_address','$pass','$contact_no','$usertype','$date', '$status')");
        if ($reg_ins) {
            $uinfo = mysql_query("select * from tbl_user where email='" . $_POST['email'] . "' and password='" . $_POST['password'] . "' ");
            $res = mysql_fetch_object($uinfo);
            echo "<script>window.android.clickOnRegister();</script>";
        }
    } else {
        $msg = " Email ID Already Exist.";
    }
} else {
    $msg = "Please fill all required fields *";
}
}
?>

代码中的问题在这一行:

if($usertype='driver'){

因为你只使用一个=,你需要使用double,比如==来进行比较。有一个等于你等于$usertype的值driver。(而且它永远是免费的)。

所以把这行改成:

if($usertype=='driver'){

看起来你有一些特殊的逻辑。

如果你用标准的方式发送你的表单,你会得到一个合适的user-type参数值。

检查表单中是否有唯一的name="user-type"

检查在firebug/chrome开发者工具中发送到服务器的值是什么,以确定问题是在后端还是前端。

试试:-

<select size="1" id="slt_country" name="country">
<option value=""> - Select - </option>
<option value="AF">Afghanistan</option>
<option value="AL">Albania</option>
<option value="DZ">Algeria</option>
...
<option value="ZM">Zambia</option>
<option value="ZW">Zimbabwe</option>
</select>

可用于获取用户选择的国家/地区的Javascript代码:

var selected_index = oForm.elements["country"].selectedIndex;
if(selected_index > 0)
{
   var selected_option_value = oForm.elements["country"].options[selected_index].value;
   var selected_option_text = oForm.elements["country"].options[selected_index].text;
}
else
{
   alert('Please select a country from the drop down list');
}

链接:http://www.javascript-coder.com/javascript-form/javascript-get-select.phtml