0

それに応じて、複数のユーザー名とhtmlを送信しようとしています。問題は、データベースからユーザー名が 1 つだけ取得されている場合に機能することです。しかし、ループ内で使用している場合は機能しません。

そのための私のphpコードは.

$srch_txt=$_REQUEST['srch_txt'];
$frnd_srch_query=mysqli_query($con,"select friend_id from friend_list where login_id='$login_id' and status='3' ");
while($frnd_srch_query_result=mysqli_fetch_assoc($frnd_srch_query))
{
$f_id=$frnd_srch_query_result['friend_id'];
$frnd_name_srch_query=mysqli_query($con,"select f_name,l_name from users_profile where user_id='$f_id' and f_name like '%$srch_txt%'");
$frnd_name_srch_query_result=mysqli_fetch_assoc($frnd_name_srch_query);
$fname=$frnd_name_srch_query_result['f_name'];
$lname=$frnd_name_srch_query_result['l_name'];
$fullname=$fname.' '.$lname;
$html="<a href='profile.php?id=".$f_id."'>".$fullname."</a>";

 $list = array();
 $list[] = array('html' => $html ,'fullname' => $fullname);
 echo json_encode($list);

}

上記でループを使用しない場合、ユーザー名とhtmlのデータが1つだけ送信され、動作しますが、ループを使用すると動作しません。それを取得するための私のjqueryコード。

$.ajax({
url:"modules/tagging/ajax.php",
type:"POST",
data:datastring
}).done(function(data){
//alert(data);
var final_data = JSON.parse(data);

var html_resp=final_data[0]['html'];
$(".tag_search").html(html_resp);
//var html_fullname=final_data[0]["fullname"];
//var final_text=first_half+' '+html_fullname
//$(".update").val(final_text);

});

私が得る結果

[{"html":"<a href='profile.php?id=27'>deepak chauhan<\/a>","fullname":"deepak chauhan"}][{"html":"<a href='profile.php?id=28'>sumit saini<\/a>","fullname":"sumit saini"}]

私がjqueryで得ているエラーは

Uncaught SyntaxError: Unexpected token [
4

1 に答える 1

1

JSON でエンコードされたデータのいくつかの異なるビットをエコーし​​ています。代わりに、ループ内の 1 つの配列でデータを収集し、結果の配列を 1 回出力します。

あなたのコードが何をするかを特に調べなくても、これは私が言いたいことの例です...

$srch_txt = $_REQUEST['srch_txt'];
$frnd_srch_query = mysqli_query($con,"select friend_id from friend_list where login_id='$login_id' and status='3' ");

$list = array();

while( $frnd_srch_query_result = mysqli_fetch_assoc( $frnd_srch_query ) )
{
  $f_id = $frnd_srch_query_result['friend_id'];
  $frnd_name_srch_query = mysqli_query($con,"select f_name,l_name from users_profile where user_id='$f_id' and f_name like '%$srch_txt%'");
  $frnd_name_srch_query_result=mysqli_fetch_assoc($frnd_name_srch_query);
  $fname=$frnd_name_srch_query_result['f_name'];
  $lname=$frnd_name_srch_query_result['l_name'];
  $fullname=$fname.' '.$lname;
  $html="<a href='profile.php?id=".$f_id."'>".$fullname."</a>";

  $list[] = array('html' => $html ,'fullname' => $fullname);

}

echo json_encode($list);
于 2013-11-15T08:59:10.780 に答える