首页 > 解决方案 > PHP foreach echo 将“符号”打印为值

问题描述

我通过 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);
   } 

});
});
});

为什么它会呼应这些符号?

标签: phpjquerymysqli

解决方案


您获取的数据不正确,您只获取一行(调用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");

推荐阅读