php echo mysql数组导致ajax

标签 php jquery mysql ajax arrays

以下function是我的controllerajax 调用的代码请求:

function search_featured_candidates() {       
   $skills = $this->input->post('skills');
   $this->load->model('Featured_candidate', 'featured', TRUE);
   $result = $this->featured->get_featured_candidates_by_skills($skills);
   if ($result) {
      $str = "";
      foreach ($result as $row) {
          $str .= "Name: " . $row->candidate_name . "<br/>";
          $str .= "Exp: " . $row->experience . "<br/>";
          $str .= "Skills: " . $row->skills . "<hr/>";
      }
      $html = $str;
      echo json_encode(array('html' => $html, 'success' => TRUE));
      } else {
          $html = 'No Candidates Found!';
          echo json_encode(array('html' => $html, 'success' => FALSE));
      }
 }

我的view代码:

<script>
$(function() {
    $("#featured_candidates").on("change paste keyup", function() {
        $.ajax({
            type: "POST",
            url: "<?php echo base_url(); ?>mypage/search_featured_candidates/",
            data: {skills: $(this).val()},
            dataType: "json",
            success: function(data) {
                if (data.success === true) {
                    $("#featured").html(data.html);
                } else {
                    $("#featured").html(data.html);
                }
            }
        });
    });
});
</script>

 <div class="panel-body">
        <div>
            <input type="text" style="width: 100%" 
             name="featured_candidates" id="featured_candidates" 
             placeholder="keyword / skills" title="Featured Candidates" 
             />
            <br/><hr/>
        </div>
        <div id="featured">
            <?php
            foreach ($result as $row) {
                echo "Name: " . $row->candidate_name . "<br/>";
                echo "Exp: " . $row->experience . "<br/>";
                echo "Skills: " . $row->skills . "<hr/>";
            }
            ?>
        </div>
    </div>

现在我正在尝试显示 result array使用ajax就像我在我的 view 中显示的那样代码使用 foreach 。因此使用 ajax 显示它我已在 $str 中的 Controller 方法中连接了数组但当我将 Controller 方法更新为以下内容时它不起作用:

 function search_featured_candidates() {       
   $skills = $this->input->post('skills');
   $html = $skills ;
   echo json_encode(array('html' => $html, 'success' => TRUE));
 }

它工作正常..任何帮助或建议都会有很大的帮助...提前致谢..

最佳答案

这里有一个错误

foreach ($result as $row) {
    echo "Name: " . $row->candidate_name . <br/>";
    echo "Exp: " . $row->experience . "<br/>";
    echo "Skills: " . $row->skills . "<hr/>";
}

你忘记了“

. $row->candidate_name . "<br/>";
                    //   ^ You forgot the "

关于php echo mysql数组导致ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22546210/

相关文章:

javascript - Quickblox 对话框 - 用户无法恢复

javascript - 如何访问 .file 数组?

javascript - 在 bootstrap-treeview 中突出显示和滚动

c# - log4net AdoNetAppender 在数据库中插入 "Null"字符串而不是空值

java - 将 Java .war 应用程序部署到 digital ocean Ubuntu

php - 如何防止axios按key排序?

php - 仅当它们 = 某些字段时才输出结果

php - 当数据库中没有任何图像时默认图像

php - MacBook air M1芯片安装PHP的问题

jquery - 使用 jquery 时允许浏览器显示 "remember"表单值?