我通过Ajax使用下拉菜单动态地从MySQL中获取数据,这是成功的,但是当我回显数组值时,而不是给我它显示的只是符号的电子邮件列表。
请看下面的图片:

从电子邮件列表中,这些都是被回音的符号。
这是我的php代码
if(isset($_POST["confirm_no"])){
$d = $_POST['confirm_no'];
$query = mysqli_query($mysqli, "select * from jobseeker WHERE confirm_no LIKE '$d%'");
//Display list
if(mysqli_num_rows($query) > 0){
$row = mysqli_fetch_array($query);
foreach ($row as $r) {
$emailArr[] = $r["mails"];
}
$emails = implode(";", $emailArr);
echo $emails;
}else{
echo 'No email for this selection.';
}
}和jQuery
$(document).ready(function(){
$('#smode').change(function(){
var confirm_no = $(this).val();
$.ajax({
type:'POST',
data:"confirm_no="+confirm_no,
url:'get_email.php',
success:function(data){
$('#emaillist').val(data);
}
});
});
});为什么它会回响这些符号?
发布于 2018-06-14 12:33:03
将代码重新构建为:
//Display list
if(mysqli_num_rows($query) > 0){
// You have many results - fetch them all iteratively
// use `fetch_assoc` to have ability to use `mails`
while ($row = mysqli_fetch_assoc($query)) {
$emailArr[] = $row["mails"];
}
$emails = implode(";", $emailArr);
echo $emails;
}else{
echo 'No email for this selection.';
}发布于 2018-06-14 12:32:36
不正确地获取数据,只获取一行(调用mysqli_fetch_array() )
$row = mysqli_fetch_array($query);
foreach ($row as $r) {
$emailArr[] = $r["mails"];
}最好写成
while( $row = mysqli_fetch_assoc($query)) {
$emailArr[] = $row["mails"];
}或者..。
$emailArr = mysqli_fetch_all($query, MYSQLI_ASSOC);
$emailArr = array_column($emailArr, "mails");https://stackoverflow.com/questions/50857557
复制相似问题