私はajaxとphp jsonを使ってfacebookのようなユーザー検索システムを作ろうとしています。しかし、私は1つの問題があります。Ajaxの成功にはPHP JSONオブジェクトが必要です
Marc Zuckerberg
、Marc Zeyn
、Marc Alp
があります。私は3
のユーザー名が同じであるので、通常はマーク名を書くと、データからすべてのマーク名を取得する必要があります。 Like
<div class="ul">Marc Zuckerbert</div>
<div class="ul">Marc Zeyn</div>
<div class="ul">Marc Alp</div>
しかし、私はすべてのマーク名を取得していないだけで、1つのマーク結果が得られます。 Chromeデベロッパーコンソールですべてのマーク名が表示されますが、HTML内には表示されません。私はajaxの成功からいくつかのコードが必要だと思う。
JS
$('body').delegate('#searchkey','keyup', function(){
clearTimeout(timer);
timer = setTimeout(function(){
var box = $('#searchkey').val();
contentbox = $.trim(box);
var dataString = 'keys=' + contentbox;
if(contentbox !==''){
$.ajax({
type: "POST",
url: siteurl +"requests/search.php",
data: dataString,
dataType:"json",
cache: false,
beforeSend: function(){},
success: function(data){
$('.un').html(data.username);
$('.uf').html(data.fullname);
}
});
}
});
});
search.php
<?php
include_once 'inc.php';
if(isset($_POST['keys'])) {
$keys = mysqli_real_escape_string($db, $_POST['keys']);
$keyRestuls = $WidGet->SearchUser($keys);
if($keyRestuls) {
// If array is in data
foreach($keyRestuls as $datas) {
$dataUsername = $datas['username'];
$dataUserID = $datas['fullname'];
$data = array(
'username' => $dataUsername,
'fullname' => $dataUserID
);
echo json_encode($data);
}
}
}
?>
SearchUser機能は、ここで
public function SearchUser($keys){
$keys = mysqli_real_escape_string($this->db, $keys);
$result = mysqli_query($this->db,"SELECT
username,
uid,
fullname FROM
users WHERE
username like '%{$keys}%' or fullname like '%{$keys}%'
ORDER BY uid LIMIT 10") or die(mysqli_error($this->db));
while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)) {
$data[]=$row;
}
if(!empty($data)) {
// Store the result into array
return $data;
}
}
SQLリクエストで '{$ keys}'の中括弧は何ですか? – gogaz
@gogaz [あなたの質問でこの答えをチェックすることができます](https://stackoverflow.com/questions/5370426/how-does-affect-a-mysql-query-in-php) – Azzo
正しいデータを取得していますか?表示されていませんか?あるいは、データをまったく入手していないのですか? – kerbholz