2014-01-18 3 views
-3

Здравствуйте, все, что я успешно достигло моей автоматической формы, но проблема в том, что результаты не соответствуют, когда мы просто возвращаем его. это мой код ..php ajax autocomplete form mysql database

<html> 
<head> 
<title>Live Search Ajax Example</title> 
<script language="javascript" type="text/javascript" 
    src="jquery-2.0.2.js"> 
    </script> 
    </head> 
    <body> 
    <h1>Live Search: Ajax Example</h1> 
    <div class="content"> 
    <input type="text" class="search" id="searchid" placeholder="Search for people" />&nbsp; &nbsp; Ex:arunkumar, shanmu, vicky<br /> 
    <div id="result"></div> 
    </div> 
<script type="text/javascript" src="jquery-1.8.0.min.js"></script> 
     <script type="text/javascript"> 
     $(function(){ 
      $(".search").keyup(function() 
      { 
    var searchid = $(this).val(); 
    var dataString = 'search='+ searchid; 
if(searchid !='') 
{ 
$.ajax({ 
type: "POST", 
url: "search.php", 
data: dataString, 
cache: false, 
success: function(html) 
{ 
$("#result").html(html).show(); 
} 
}); 
}return false;  
    }); 

    jQuery("#result").live("click",function(e){ 
var $clicked = $(e.target); 
var $name = $clicked.find('.name').html(); 
var decoded = $("<div/>").html($name).text(); 
$('#searchid').val(decoded); 
}); 
      jQuery(document).live("click", function(e) { 
var $clicked = $(e.target); 
if (! $clicked.hasClass("search")){ 
jQuery("#result").fadeOut(); 
} 
}); 
    $('#searchid').click(function(){ 
jQuery("#result").fadeIn(); 
    }); 
    }); 
    </script> 
    </body> 
     </html> 

и моя страница PHP, как

<?php 
    include('database.php'); 
if($_POST) 
    { 
    $q=$_POST['search']; 
     $sql_res=mysql_query("select id,name,email from fk_mem where name like '$q%' or email like '$q%' order by id LIMIT 5"); 
    while($row=mysql_fetch_array($sql_res)) 
    { 
    $username=$row['name']; 
    $email=$row['email']; 
     $b_username='<strong>'.$q.'</strong>'; 
        $b_email='<strong>'.$q.'</strong>'; 
     $final_username = str_ireplace($q, $b_username, $username); 
      $final_email = str_ireplace($q, $b_email, $email); 
     ?> 
     <div class="show" align="left"> 
      <span class="name"><?php echo $final_username; ?></span>&nbsp;<br/><?php echo $final_email; ?><br/> 
      </div> 
      <?php 
      } 
     } 
       ?> 

любая помощь пожалуйста ..

ответ

0

Надень между <HEAD> и </HEAD> поставить этот:

<script src="jquery-2.0.2.js"></script> 
<script> 
$.customPOST = function(data,callback){ 
    $.post('search.php',data,callback,'json'); 
} 

$(document).ready(function() { 
    $(".search").keyup(function(){ 
     $.customPOST({search: $.('#searchid').val(),function(response){ 
     if(response.success){ 
      var html_code = '<div class="show" style="text-align:left;">'; 
       html_code += '<span class="name">' + response.final_username + '</span>'; 
       html_code += '&nbsp;<br/>' + response.final_email + '<br/></div>'; 
      $("#result").text(html_code); 
      $("#result").show(); 
     } 
    }); 

}); 
</script> 

Вы, PHP-скрипт, должны вернуть ответ JSON таким образом:

<?php 
... your code here and .... 

$final_username = str_ireplace($q, $b_username, $username); 
$final_email = str_ireplace($q, $b_email, $email); 

// here we create and return our JSON response 
$response = array('final_username' => $final_username, 'final_email' => $final_email); 
echo json_encode($response); 

?>