根据HTML选择选项在PHP中分配一个变量,并将结果插入到数据库表中


Assign a variable in PHP based on HTML select option and insert result to a database table

我正在运行以下查询以从timesheetlogin表检索信息。

$clientlist = db_select("SELECT * FROM timesheetlogin WHERE type='client' ORDER BY company DESC");
$candlist = db_select("SELECT * FROM timesheetlogin WHERE type='cand' ORDER BY name DESC");

该信息在前端以表单的形式显示。

<select name="client" id="client">
<?php 
    foreach($clientlist as $key => $value) {
            $company = $clientlist[$key]["company"];
            $name = " (" . $clientlist[$key]["name"] . ")";
            echo '<option value="'. $company .'">'. $company . $name .' </option>';
            $clientid = $clientlist[$key]["id"];
                    }
                ?>  
</select><br />

所以表单有很多空白字段,我没有显示,只有客户端和候选人的名字是从一个下拉菜单中选择的。

最后,我想把条目插入数据库:

if (isset($_POST['submit'])) {
    $clientid = db_quote($_POST['client']);
    $candid = db_quote($_POST['cand']);

SQL

db_query("INSERT INTO timesheets (clientid, candid, weekending, department, orderno, basicpay, basiccharge, otpay, otcharge, ot2pay, ot2charge, status, hue, huc) VALUES ('$client', '$cand', '$week_ending', '$department', '$order_no', '$basic_pay', '$basic_charge', '$ot_pay', '$ot_charge', '$ot2_pay', '$ot2_charge', '$status', '$hue', '$huc')");

我的问题是我需要传递与$_POST['client']$_POST['cand']相关的id,而不是当前在选项字段中的字符串。

我最初的想法是这样做,检查'客户端'字段,并查询数据库,以获得id的值:

if (isset($_POST['client'])) {
    //code
}

这看起来很乱。我已经查询了数据库,并通过$clientlist数组循环,因此id在该循环中可用。是否有一种方法可以根据用户从选择框中选择的内容来分配$clientid变量?

谢谢

您可以这样设置id:

$clientid = $clientlist[$key]["id"];
echo '<option value="'.$clientid.'">'. $company . $name .' </option>';