Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
键入时的实时搜索结果。。。我这样做对吗?jQuery+;PHP_Php_Jquery - Fatal编程技术网

键入时的实时搜索结果。。。我这样做对吗?jQuery+;PHP

键入时的实时搜索结果。。。我这样做对吗?jQuery+;PHP,php,jquery,Php,Jquery,我有一个搜索输入和一个隐藏的div。当你开始键入搜索输入时,隐藏的div将变为可见,结果将被带入。在本例中,我正在搜索客户名称 这一切都很好,但我认为我的代码可能会更好,但我不确定从哪里开始。每个keyup请求一个PHP脚本,该脚本访问数据库中的一个表以查找相似的字符串。但是在我的PHP脚本中,我使用了一些JS/jQuery,我不确定这是否是一个好的实践。下面是我的代码。我这样做是正确的还是完全偏离了方向?有什么改进的建议吗 Javascript $("#search").keyup(funct

我有一个搜索输入和一个隐藏的div。当你开始键入搜索输入时,隐藏的div将变为可见,结果将被带入。在本例中,我正在搜索客户名称

这一切都很好,但我认为我的代码可能会更好,但我不确定从哪里开始。每个keyup请求一个PHP脚本,该脚本访问数据库中的一个表以查找相似的字符串。但是在我的PHP脚本中,我使用了一些JS/jQuery,我不确定这是否是一个好的实践。下面是我的代码。我这样做是正确的还是完全偏离了方向?有什么改进的建议吗

Javascript

$("#search").keyup(function() {
 $("#search_results").show("fast");
 $.ajax
 ({
  type: "POST",
  url: "http://localhost:8888/index.php/welcome/search/" + $("#search").val(),
  success: function(html)
  {
   $("#search_results").html(html);
  }
 });
});
PHP

function search($search_string = false)
    {
 if ($search_string)
 {
  $this->db->like('name', $search_string);
  $query = $this->db->get('clients');

  if ($query->num_rows() == 0)
  {
   echo "No client exists.";
  }
  else
  {
   foreach ($query->result() as $row)
   {
    echo '<script>';
    echo '
    $("#client_results_'.$row->id.'").hide();
    $("#'.$row->id.'").toggle(function()
    {
     $.ajax
     ({
      type: "POST",
      url: "http://localhost:8888/index.php/welcome/search_client_ads/" + '.$row->id.',
      success: function(html)
      {
       $("#client_results_'.$row->id.'").html(html).show("fast");
      }
     });
    }, function()
    {
     $("#client_results_'.$row->id.'").hide("fast").html("");
    });';
    echo '</script>';
    echo '<p><span id="'.$row->id.'">'.$row->name.'</span></p>';
    echo '<div id="client_results_'.$row->id.'"></div>';
   }
  }
 }
 else
 {
  echo '';
 }
}

function search_client_ads($client_id)
    {
 $query = $this->db->get_where('online_ads', array('client' => $client_id));

 if ($query->num_rows() == 0)
 {
  echo "No ads exist.";
 }
 else
 {
  foreach ($query->result() as $row)
  {
   echo $row->id;
  }
 }
}
函数搜索($search\u string=false)
{
如果($search\u字符串)
{
$this->db->like('name',$search\u string);
$query=$this->db->get('clients');
如果($query->num_rows()==0)
{
echo“不存在客户端。”;
}
其他的
{
foreach($query->result()作为$row)
{
回声';
回声'
$(“#客户端_结果.'$row->id.”)。hide();
$(“#”。$行->id')。切换(函数()
{
$.ajax
({
类型:“POST”,
url:“http://localhost:8888/index.php/welcome/search_client_ads/“+”.$row->id,
成功:函数(html)
{
$(“#客户端_结果.'$row->id.”)html(html.show(“fast”);
}
});
},函数()
{
$(“#客户端_结果.'.$row->id.”).hide(“fast”).html(“”);
});';
回声';
回显“”.$row->name.“

”; 回声'; } } } 其他的 { 回声'; } } 功能搜索\u客户端\u广告($client\u id) { $query=$this->db->get_where('online_ads',array('client'=>$client_id)); 如果($query->num_rows()==0) { 回声“没有广告存在。”; } 其他的 { foreach($query->result()作为$row) { echo$row->id; } } }
与其返回大量脚本,不如尝试返回一个json字符串,并让jquery循环遍历它。

谢谢。我似乎永远都无法在这里正确发布代码。我真的必须到每一行添加4+空格吗?@Jacob,对不起,我把你的放了回去。我对缩进做了一些其他的小更正。使用编辑器中的0101按钮。请参阅