PHP foreach echo将“符号”打印为值

时间:2018-06-14 12:27:20

标签: php jquery mysqli

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

看看下面的图片: enter image description here

从电子邮件列表中,这些是回显的符号。

这是我的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);
   } 

});
});
});

为什么它会回显这些符号?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

将代码重建为:

std::string s = "\r\n½"; 
int ss = s.size(); //ss is 4