0

我在javascript下面有这段代码:

<script>
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","includes/get_user.php?q="+str,true);


xmlhttp.send();
}
</script>

php sql脚本如下:

<?php
     $testQrys = "SELECT * FROM test where status = 1";
     $testdbResults = mysql_query($testQrys);
?>
<select size='5' width='925' style='width: 925px' name='users' onchange='showUser(this.value)' multiple>

<?php while($test = mysql_fetch_array($testdbResults )) { ?>

<option class='h4' value='<?php print($test[9]); ?>'>
    <?php print($test[5]);echo" ( ";print($test[9]);echo" )"; ?>
</option>

        <?php } ?>
</select>
<div id="txtHint"></div>

get_user.php 代码是:

<?php
$q=$_GET["q"];
$con = mysqli_connect('localhost','root','','airways');
if (!$con)
  {
  die('Could not connect: ' . mysqli_error($con));
  }

mysqli_select_db($con,"ajax_demo");
$sql="SELECT * FROM test WHERE m_email = '".$q."'";

$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($result))
  {
 echo "<input type='text' name='staff_no[]' value='".$row['m_staff_no']."'>";
  }
mysqli_close($con);
?>

现在我想要的是,当我在选择选项中选择一个用户时,它会显示该用户的员工编号,但是当我选择多个用户时,它不会显示我选择的其他用户的员工编号。

请帮助我更改代码,以便我可以在文本框中获取用户的员工编号(22344、44333、33344、55443、11125、25263)

等待友好和迅速的回应。

提前致谢

4

1 回答 1

0

错误来自showUser(this.value). 这仅返回第一个选定元素的值。您需要循环浏览所有选项并将它们连接在一起以创建一个可以作为参数发送的字符串。

将您的 javascript 代码更改为类似的内容。请注意,您需要更改 PHP 代码以分隔电子邮件、清理它们并创建有效的WHERE m_email IN ()查询。

您需要先添加id="users"到您的 HTML 代码中。

var usersList = document.getElementById('users');
var emailString = '';

for (user_counter = 0; user_counter < usersList.options.length; user_counter++) {
    if (usersList.options[user_counter].selected) {
        emailString += usersList.options[user_counter].value;
    }
}

然后emailString作为参数发送到 PHP 脚本。如果出现错误,请使用 log.txt 再次对其进行测试。

于 2013-08-21T15:46:24.420 回答