仅保存从AD查询中获取的下拉列表中的特定部分

时间:2017-03-02 05:13:06

标签: javascript php codeigniter active-directory

目前正在处理用户管理页面,其中包含名称,用户名,电子邮件和级别字段。除了级别之外的所有字段都是从AD获得的。我设法将值保存到数据库中。但是,name字段同时包含用户名和电子邮件字段。下拉列表会显示名称,但会保存用户名和电子邮件。

<th align="right" scope="row">Select User</th>
<td><script type="text/javascript">
var $ = function(e){ return document.getElementById(e); }
var swap = function(val){
var arr = val.split("|");
document.getElementsByName('username')[0].value = arr[0];
document.getElementsByName('email')[0].value = arr[1];
}
</script>

<select name="name" id="name" class="reginput" onchange="swap(this.value)"    />
<option value="">Select User</option>

<?php
// Create connection
$con=mysqli_connect("localhost","root","","dbname");

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL:" . mysqli_connect_error();
}

//$result = mysqli_query($con, "SELECT name,Id FROM users");
$result = $this->Users_model->queryAD();

$options=$test;

//while ($row=mysqli_fetch_array($result)) {
for ($i=0; $i<$result["count"]; $i++) {
//$options .= '<option value="'.$row["name"].'">'.$row["name"].'  '.'</option>';

$options .= '<option value="'.$result[$i]["samaccountname"]  [0].'|'.$result[$i]["mail"][0].'">'.$result[$i]["displayname"][0].'   '.'</option>';



}

$options .= '</select>';


echo $options;

例如:

选择用户:Jane Doe 用户名:简 电子邮件:janed@yahoo.com 级别:管理员

用户将显示为Jane | janed@yahoo.com而不是Jane Doe,但其他领域都很好。

This is the page for inserting users , the display is fine but Full Name wont be saved properly into DB

1 个答案:

答案 0 :(得分:0)

usernameemail代替Full name,因为您提供的value option$result[$i]["samaccountname"][0].'|'.$result[$i]["mail"][0]

将选项的值更改为

$options .= '<option value="'.$result[$i]["displayname"][0].'">'.$result[$i]["displayname"][0].'   '.'</option>';

修改

要向用户显示用户名和电子邮件,并将Fullname保存到DB,请使用以下命令:

$options .= '<option value="'.$result[$i]["displayname"][0].'">"'.$result[$i]["samaccountname"]  [0].'|'.$result[$i]["mail"][0].'"</option>';