我正在运行以下查询以从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>';